Hướng dẫn what characters need to be escaped javascript? - những ký tự nào cần được thoát khỏi javascript?
Câu trả lời ở đây đã trở nên phức tạp hơn một chút với việc giới thiệu các biểu thức chính quy Unicode trong JavaScript (nghĩa là các biểu thức thông thường được xây dựng bằng cờ 5). Đặc biệt: Show
Tập hợp các ký tự được giải thích đặc biệt có thể được chia rẽ từ tiêu chuẩn ECMAScript; Ví dụ: với Ecmascript 2021, https://262.ecma-international.org/12.0/#sec-patterns, chúng ta thấy các ký tự "cú pháp" sau đây:
Cụ thể, trái ngược với các câu trả lời khác, lưu ý rằng 9, 0, 1, 2 và 3 không được coi là ký tự cú pháp. Thay vào đó, những nhân vật này chỉ có thể có một cách giải thích đặc biệt trong các bối cảnh cụ thể.Ví dụ, các ký tự 0 và 1 chỉ có một cách giải thích đặc biệt khi được sử dụng làm tên nhóm bắt giữ; ví dụ. Như trong
Và bởi vì 0 và 1 không được coi là ký tự cú pháp, việc thoát chúng là một lỗi trong các biểu thức chính quy Unicode.
Ngoài ra, ký tự 3 chỉ được giải thích đặc biệt trong một lớp ký tự, khi được sử dụng để diễn đạt một phạm vi ký tự, như trong ví dụ:
Nó có giá trị khi thoát khỏi một 3 trong một lớp ký tự, nhưng không phải bên ngoài một lớp ký tự, cho các biểu thức chính quy Unicode.
Đối với một biểu thức thông thường được xây dựng bằng cú pháp 0 (trái ngược với 1), dấu gạch chéo bên trong ( 2) sẽ cần phải được thoát ra Điểm đánh dấu cuối cho một mẫu so với một 2 theo nghĩa đen trong mẫu.
Cuối cùng, nếu mục tiêu của bạn là thoát khỏi các nhân vật để chúng không được giải thích đặc biệt trong một biểu thức thông thường, thì chỉ đủ để thoát khỏi các ký tự cú pháp. Ví dụ: nếu chúng tôi muốn khớp với chuỗi theo nghĩa đen 5, chúng tôi có thể sử dụng:
Lưu ý rằng ký tự 2 không bị thoát ra. Có vẻ như cần phải thoát khỏi ký tự 2 vì nó có một cách giải thích đặc biệt trong mẫu 5, nhưng vì nó không được coi là ký tự cú pháp, thoát khỏi nó là không cần thiết. .Đoạn mã trên đã được kiểm tra với: Như chúng tôi đã thấy, một dấu gạch chéo ngược Cũng có những nhân vật đặc biệt khác, có ý nghĩa đặc biệt trong RegEXP, chẳng hạn như 4. Chúng được sử dụng để thực hiện các tìm kiếm mạnh mẽ hơn.Don Tiết cố gắng ghi nhớ danh sách - chẳng mấy chốc chúng tôi sẽ đối phó với từng người trong số họ và bạn sẽ tự động biết họ bằng trái tim. Trốn thoátHãy nói rằng chúng tôi muốn tìm một dấu chấm theo nghĩa đen. Không phải là bất kỳ nhân vật nào, mà chỉ là một dấu chấm. Để sử dụng một ký tự đặc biệt như một nhân vật thông thường, hãy dành cho nó bằng một dấu gạch chéo ngược: 5.Đó cũng là người được gọi là Escaping một nhân vật. Ví dụ:
Điểm dừng cũng là những nhân vật đặc biệt, vì vậy nếu chúng ta muốn chúng, chúng ta nên sử dụng 6. Ví dụ dưới đây tìm kiếm một chuỗi 7:
Nếu chúng tôi đang tìm kiếm một dấu gạch chéo ngược 2, thì đó là một nhân vật đặc biệt trong cả hai chuỗi thông thường và regexps, vì vậy chúng tôi nên nhân đôi nó. 0Một chémMột biểu tượng chém 9 không phải là một nhân vật đặc biệt, nhưng trong JavaScript, nó được sử dụng để mở và đóng RegEXP: 0, vì vậy chúng ta cũng nên thoát khỏi nó.Ở đây, những gì một tìm kiếm cho một chém 9 trông giống như: 1Mặt khác, nếu chúng tôi không sử dụng 2, nhưng tạo ra một regexp bằng cách sử dụng 3, thì chúng tôi không cần phải thoát khỏi nó: 2Regexp mớiNếu chúng ta đang tạo ra một biểu thức chính quy với 3, thì chúng ta không phải trốn thoát 2, nhưng cần phải thực hiện một số trốn thoát khác.Ví dụ, hãy xem xét điều này: 3Tìm kiếm tương tự trong một trong những ví dụ trước đã làm việc với 6, nhưng 7 không hoạt động, tại sao?Lý do là các dấu gạch chéo ngược được tiêu thụ bởi một chuỗi. Như chúng ta có thể nhớ lại, các chuỗi thông thường có các nhân vật đặc biệt của riêng họ, chẳng hạn như 8 và một dấu gạch chéo ngược được sử dụng để trốn thoát.Ở đây, cách thức, cách thức của \ d. Chuỗi trích dẫn của người Hồi giáo tiêu thụ dấu vết chéo ngược và tự giải thích chúng, ví dụ:
Vì vậy, 3 nhận được một chuỗi mà không có dấu gạch chéo ngược. Đó là lý do tại sao việc tìm kiếm không hoạt động!Để sửa nó, chúng ta cần tăng gấp đôi các dấu gạch chéo ngược, vì trích dẫn chuỗi biến 4 thành 2: 4Bản tóm tắt
Những ký tự URL nào cần được thoát ra?Sử dụng các ký tự thoát URL khi tạo các URL có chứa khoảng trắng hoặc các ký tự đặc biệt khác.when creating URLs that contain spaces or other special characters.
Những nhân vật nào nên được trốn thoát trong JSON?Trong JSON, các ký tự duy nhất bạn phải trốn thoát là \, "và mã kiểm soát.\, ", and control codes.
Những nhân vật nào cần phải được thoát khỏi grep?Bất cứ khi nào bạn sử dụng biểu thức thông thường của grep tại dấu nhắc lệnh, hãy bao quanh nó bằng trích dẫn hoặc thoát khỏi metacharacters (như &!.* $? Và \) với một dấu gạch chéo ngược (\).& ! . * $ ? and \ ) with a backslash ( \ ).
Những nhân vật nào phải được thoát ra khỏi Regex?Regex nhận ra các trình tự thoát phổ biến như \ n cho Newline, \ t cho tab, \ r để quay lại vận chuyển, \ nnn cho số octal lên tới 3 chữ số, \ xhh cho mã hex hai chữ số, \ uhhhh cho mộtUnicode 4 chữ số, \ uhhhhhhhhh cho một unicode 8 chữ số.\n for newline, \t for tab, \r for carriage-return, \nnn for a up to 3-digit octal number, \xhh for a two-digit hex code, \uhhhh for a 4-digit Unicode, \uhhhhhhhh for a 8-digit Unicode. |