Một ký tự thoát cho phép bạn xuất các ký tự mà thông thường bạn không thể làm được, thường là do trình duyệt sẽ diễn giải ký tự đó theo cách khác với những gì bạn dự định
Phương pháp-1. Thoát các ký tự đặc biệt HTML trong JavaScript
Đoạn mã sau cho thấy phương pháp đơn giản và dễ dàng để thoát các ký tự đặc biệt HTML trong JavaScript
Nguồn đầy đủ. JavaScript
Phương pháp-2. Thoát tất cả các ký tự đặc biệt trong JavaScript
Trong phương pháp này, hãy sử dụng HTML Phương thức DOM createTextNode[] để thoát các ký tự đặc biệt HTML trong JavaScript
Nguồn đầy đủ. JavaScript
Phương pháp-3. Thoát các ký tự đặc biệt trong JavaScript
Trong phương pháp này, hãy sử dụng phương thức thay thế [] của JavaScript để thoát các ký tự đặc biệt trong JavaScript
Nguồn đầy đủ. JavaScript
Ký tự thoát JavaScript
ví dụ
Đoạn code trên khi chạy sẽ báo lỗi do trình duyệt gặp dấu ngoặc kép đầu tiên, nó sẽ tưởng là chuỗi đã kết thúc
Sử dụng ký tự thoát
Đoạn mã trên sẽ chạy thành công, vì trình duyệt gặp dấu gạch chéo ngược, nó biết không cố diễn giải ký tự tiếp theo
Mọi ngôn ngữ lập trình đều có các ký tự đặc biệt - các ký tự có ý nghĩa đặc biệt như xác định một biến, cuối dòng hoặc ngắt trong một số dữ liệu. JavaScript cũng không khác, vì vậy nó cung cấp một số chức năng mã hóa và giải mã các ký tự đặc biệt
Nếu bạn đang tương tác giữa PHP và JavaScript, bạn cũng cần phải làm quen với các hàm PHP để mã hóa và giải mã các ký tự đặc biệt, đó là lý do tại sao chúng tôi đã tạo công cụ đặc biệt này để thử nghiệm và so sánh các hàm khác nhau
Mã hóa và giải mã bằng JavaScript và PHP
Biểu mẫu bên dưới cho phép bạn xem đầu ra của các hàm khác nhau được sử dụng để mã hóa các ký tự đặc biệt khi chúng xuất hiện ở dạng văn bản thuần túy hoặc tham số URL [theo dấu '?' trong URL]. Trang này gọi các hàm PHP trực tiếp bằng cách sử dụng Ajax thay vì mô phỏng JavaScript. Nếu bạn có một chuỗi để giải mã, thay vào đó hãy sử dụng các nút bên phải
Các chức năng này thực hiện thay thế trên một số ký tự nhất định như được hiển thị trong bảng ở cuối trang và được mô tả ngắn gọn tại đây
- Hàm thoát JavaScript thay thế hầu hết các ký hiệu dấu chấm câu bằng mã hex tương đương, nhưng được phát hiện là không phù hợp khi mã hóa ký tự UNICODE và đã được thay thế bằng hàm encodeURI
- Hàm encodeURIComponent là một phần mở rộng của encodeURI, điểm khác biệt là nó cũng thoát khỏi các ký tự sau. , / ?. @ & = + $
- Về phía PHP, sự khác biệt duy nhất giữa urlencode và rawurlencode là cái sau thoát khỏi ký tự trong khi urlencode sử dụng + thay thế được chấp nhận rộng rãi
- Hàm htmlentities thoát các ký tự có ý nghĩa đặc biệt bên trong HTML bằng cách chèn các thực thể HTML vào vị trí của chúng [ví dụ:. & thay cho &]. Xem bài viết của chúng tôi về Mã ký tự ASCII để biết thêm chi tiết
- Tất cả các chức năng đều có chức năng 'giải mã' bổ sung mà hầu như ngược lại
Thoát khỏi dấu ngoặc kép và dấu ngoặc đơn
Một chức năng PHP thiết yếu khác có ích khi truyền dữ liệu sang JavaScript là dấu gạch chéo bổ sung sẽ thêm dấu gạch chéo ngược trước. dấu gạch chéo ngược, dấu ngoặc đơn và dấu ngoặc kép
Ví dụ: để lặp lại một biến PHP thành mã JavaScript
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org6
Trong HTML, chúng tôi sử dụng dấu ngoặc kép và trong dấu ngoặc đơn JavaScript, do đó, bất kỳ dấu ngoặc kép nào trong mã JavaScript sẽ cần được thoát để chúng không xung đột với dấu ngoặc kép HTML hoặc JavaScript
Để biết thêm chi tiết về cách thoát các biến PHP để sử dụng trong JavaScript, hãy xem bài viết liên quan của chúng tôi. Chuyển các biến PHP sang JavaScript
Bảng ký tự được mã hóa
Tại đây, bạn có thể thấy các hàm JavaScript và PHP khác nhau áp dụng như thế nào cho một loạt các ký tự phổ biến
Đầu vàoJavaScriptPHPescapeencodeURIencodeURIThành phầnurlencoderawurlencodehtmlentities%20%20%20+%20. %21. %21%21. @@@%40%40%40@#%23#%23%23%23#$%24$%24%24%24$%%25%25%25%25%25%^%5E%5E% . %3A. %3A%3A%3A. ;%3B;%3B%3B%3B;;. "%22%22%22%22%22"'%27''%27%27'\%5C%5C%5C%5C%5C\///%2F%2F%2F/?%3F?%3FThông số kỹ thuật của RFC 1738 khiến cho việc đọc trở nên hấp dẫn - vì tài liệu này đã 10 năm tuổi nhưng vẫn có thể áp dụng được
Hàm escape[] trong Javascript lấy một chuỗi làm tham số và mã hóa nó để nó có thể được truyền tới bất kỳ máy tính nào trong bất kỳ mạng nào hỗ trợ các ký tự ASCII
cú pháp
escape[string]
Thông số. Hàm này chấp nhận một tham số duy nhất như đã đề cập ở trên và được mô tả bên dưới
- chuỗi. Tham số này chứa chuỗi sẽ được mã hóa
Giá trị trả về. Hàm này trả về một chuỗi được mã hóa.
Ghi chú. Chức năng này chỉ mã hóa các ký tự đặc biệt, chức năng này không được dùng nữa.
ngoại lệ. @ – +. / * _
Dưới đây là một ví dụ về hàm escape[]
Ví dụ. Trong ví dụ này, chúng ta sẽ chỉ mã hóa một chuỗi có một số ký hiệu bằng cách sử dụng hàm JavaScript escape[]
jav
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org7
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org9
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org1
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org0
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org1
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org2
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org3
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org5
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org7
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org0____80
Geeks%20for%20Geeks%21%21%21 A%20Computer%20Science%20Portal1
Geeks%20for%20Geeks%21%21%21 A%20Computer%20Science%20Portal2
Geeks%20for%20Geeks%21%21%21 A%20Computer%20Science%20Portal3
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org2
Geeks%20for%20Geeks%21%21%21 A%20Computer%20Science%20Portal5
đầu ra
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org
Các mã ví dụ khác cho chức năng trên như sau.
ví dụ 1. Trong ví dụ này, chúng ta sẽ chỉ mã hóa một chuỗi có một số ký hiệu bằng cách sử dụng hàm JavaScript escape[]
jav
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org7
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org9
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org1
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org0
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org1
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org2
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org3
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org5
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org7
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org0
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org72
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org2
Geeks%20for%20Geeks%21%21%21 A%20Computer%20Science%20Portal5
đầu ra
________số 8ví dụ 2. Trong ví dụ này, chúng ta sẽ chỉ mã hóa một chuỗi có một số ký hiệu bằng cách sử dụng hàm JavaScript escape[].
jav
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org7
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org9
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org1
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org0____382
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org2
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org3
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org5
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org7
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org8
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org0
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org91
Geeks%20for%20Geeks%21%21%21 A%20Computer%20Science%20Portal1
_______82____394____12
Geeks%20for%20Geeks%21%21%21 A%20Computer%20Science%20Portal5
đầu ra
Geeks%20for%20Geeks%21%21%21 To%20contribute%20articles%20contact%20us%20atcontribute @geeksforgeeks.org5
Chúng tôi có một danh sách đầy đủ các Chức năng Javascript, để kiểm tra chúng, vui lòng xem bài viết Tham khảo đầy đủ Chức năng Javascript