Javascript hex thành char

ví dụ

Cách chuyển đổi giá trị Unicode thành ký tự

hãy để char = Chuỗi. fromCharCode(65);

Tự mình thử »

hãy để văn bản = Chuỗi. fromCharCode(72, 69, 76, 76, 79);

Tự mình thử »


Định nghĩa và cách sử dụng

Phương thức

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
4 chuyển đổi giá trị Unicode thành ký tự

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
4 là một phương thức tĩnh của đối tượng String

Cú pháp luôn là

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
4

Bạn không thể sử dụng

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
7


cú pháp

Chuỗi. fromCharCode(n1, n2,. , nX)

Thông số

Thông số Mô tản1, n2, nXBắt buộc.
Một hoặc nhiều giá trị Unicode sẽ được chuyển đổi.

Giá trị trả về

TypeDescriptionMột chuỗiMột chuỗi đại diện cho (các) ký tự unicode


Hỗ trợ trình duyệt

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
4 là một tính năng ECMAScript1 (ES1)

ES1 (JavaScript 1997) được hỗ trợ đầy đủ trên mọi trình duyệt

ChromeEdgeFirefoxSafariOperaIECóCóCóCóCóCó

Gần đây đã viết về các tham chiếu ký tự trong HTML và các chuỗi ký tự thoát trong CSS, tôi cho rằng sẽ rất thú vị nếu xem xét cả các ký tự thoát trong JavaScript

Mã ký tự, điểm mã và đơn vị mã

Điểm mã (còn được gọi là “mã ký tự”) là biểu thị bằng số của một ký tự Unicode cụ thể

Ví dụ: mã ký tự của ký hiệu bản quyền

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
9 là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
00, có thể viết là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
01 ở dạng hex

Trong JavaScript,

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
02 có thể được sử dụng để lấy điểm mã Unicode dạng số của bất kỳ ký tự nào lên tới U+FFFF (i. e. ký tự có điểm mã
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
03, là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
04 ở dạng thập phân)

Vì JavaScript sử dụng mã hóa UCS-2 bên trong, nên các điểm mã cao hơn được biểu thị bằng một cặp ký tự giả “thay thế” (có giá trị thấp hơn) được sử dụng để tạo thành ký tự thực. Để lấy mã ký tự thực của các ký tự có điểm mã cao hơn này trong JavaScript, bạn sẽ phải làm. Về cơ bản, JavaScript sử dụng các đơn vị mã thay vì các điểm mã

Bây giờ thì không còn cách nào khác, chúng ta hãy xem các loại trình tự thoát ký tự khác nhau trong chuỗi JavaScript

Trình tự thoát ký tự đơn

Có một số chuỗi thoát ký tự đơn để sử dụng trong chuỗi

  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    05. xóa lùi (U+0008 BACKSPACE)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    06. nguồn cấp dữ liệu biểu mẫu (U+000C FORM FEED)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    0. nguồn cấp dữ liệu (U+000A LINE FEED)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    1. trả lại vận chuyển (U+000D CARRIAGE RETURN)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    2. tab ngang (BẢNG BẢNG KÝ TỰ U+0009)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    3. tab dọc (LẬP BẢNG DÒNG U+000B)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    4. ký tự null (U+0000 NULL) (chỉ khi ký tự tiếp theo không phải là chữ số thập phân; nếu không thì đó là ký tự )
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    5. trích dẫn đơn (U+0027 APOSTROPHE)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    6. trích dẫn kép (U+0022 QUOTATION MARK)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    7. dấu gạch chéo ngược (U+005C REVERSE SOLIDUS)

Tất cả các ký tự thoát có thể dễ dàng được ghi nhớ bằng biểu thức chính quy sau.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
8

Lưu ý rằng ký tự thoát

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
9 làm cho các ký tự đặc biệt thành chữ

Chỉ có một ngoại lệ cho quy tắc này

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
0

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
9 theo sau bởi một dòng mới không phải là một chuỗi thoát ký tự, mà là một
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
91. Đây chỉ đơn giản là một cách để trải một chuỗi trên nhiều dòng (ví dụ: để chỉnh sửa mã dễ dàng hơn), mà không có chuỗi thực sự bao gồm bất kỳ ký tự dòng mới nào. Tôi cho rằng bạn có thể nghĩ về
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
9 theo sau bởi một dòng mới như một chuỗi thoát cho chuỗi rỗng

Các ký tự không có ý nghĩa đặc biệt cũng có thể được thoát (e. g.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
93), nhưng điều này tất nhiên là không cần thiết. Tuy nhiên, việc sử dụng
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
94 bên ngoài a hoặc
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
95 bên ngoài a is và khiến một số công cụ đưa ra lỗi cú pháp

Ghi chú. IE < 9 coi

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
96 là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
97 thay vì tab dọc (
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
98). Nếu lo ngại về khả năng tương thích giữa nhiều trình duyệt, hãy sử dụng
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
99 thay vì
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
3

Một điều khác cần lưu ý là các lần thoát

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
3 và
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
4 không được phép trong các chuỗi JSON

Trình tự thoát bát phân

Bất kỳ ký tự nào có mã ký tự thấp hơn

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
003 (i. e. bất kỳ ký tự nào trong phạm vi ASCII mở rộng) có thể được thoát bằng cách sử dụng mã ký tự được mã hóa theo hệ bát phân của nó, có tiền tố là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
9. (Lưu ý rằng đây là cùng một phạm vi ký tự có thể thoát qua. )

Để sử dụng cùng một ví dụ, biểu tượng bản quyền (_______1005) có mã ký tự

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
00, cung cấp cho
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
007 trong ký hiệu bát phân, vì vậy bạn có thể viết nó là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
008

Thoát bát phân có thể bao gồm hai, ba trong số bốn ký tự.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
009,
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
010 và
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
011 là tương đương; . Tuy nhiên, nếu thoát bát phân (e. g.
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
009) là một phần của chuỗi lớn hơn và ngay sau nó là một ký tự trong phạm vi
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
013 (e. g.
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
014), ký tự tiếp theo sẽ được coi là một phần của chuỗi thoát cho đến khi có tối đa ba chữ số được khớp. Nói cách khác,
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
015 (một lối thoát ký tự bát phân đơn tương đương với
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
016) không giống với
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
017 (một lối thoát bát phân
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
011 theo sau bởi một ký tự không thoát
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
019). Bằng cách đơn giản là thoát số bát phân đệm bằng không, bạn có thể tránh được sự cố này

Lưu ý rằng có một ngoại lệ ở đây. bản thân nó,

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
4 không phải là một chuỗi thoát bát phân. Nó trông giống như một, và nó thậm chí còn bằng với
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
021 và
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
022, cả hai đều là chuỗi thoát bát phân — nhưng trừ khi nó được theo sau bởi một chữ số thập phân, thì nó hoạt động giống như một. Hoặc,.
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
023. Có lẽ dễ nhất để xác định cú pháp thoát bát phân bằng biểu thức chính quy sau.
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
024

Lưu ý rằng

Các phiên bản trước đây của ECMAScript đã bao gồm cú pháp và ngữ nghĩa bổ sung để chỉ định chuỗi ký tự bát phân và chuỗi thoát bát phân. Chúng đã bị xóa khỏi phiên bản ECMAScript này. Phụ lục không quy chuẩn này trình bày cú pháp và ngữ nghĩa thống nhất cho các chuỗi ký tự bát phân và chuỗi thoát bát phân để tương thích với một số chương trình ECMAScript cũ hơn

Ngoài ra,

Một triển khai phù hợp, khi xử lý mã chế độ nghiêm ngặt (xem 10. 1. 1), không thể mở rộng cú pháp của

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
025 để bao gồm
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
026 như được mô tả trong B. 1. 2

Chúng cũng ở dạng chữ mẫu

TL; DR Không sử dụng thoát bát phân;

Trình tự thoát thập lục phân

Bất kỳ ký tự nào có mã ký tự thấp hơn

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
003 (i. e. bất kỳ ký tự nào trong phạm vi ASCII mở rộng) có thể được thoát bằng cách sử dụng mã ký tự được mã hóa hex của nó, có tiền tố là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
95. (Lưu ý rằng đây là cùng một phạm vi ký tự có thể thoát qua. )

Thoát thập lục phân dài bốn ký tự. Họ yêu cầu chính xác hai ký tự sau

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
95. Nếu mã ký tự thập lục phân chỉ dài một ký tự (trường hợp này áp dụng cho tất cả các mã ký tự nhỏ hơn
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
030 hoặc
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
031 ở dạng thập lục phân), bạn sẽ cần đệm nó bằng một ký tự
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
032 ở đầu

Ví dụ: biểu tượng bản quyền (

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
005) có mã ký tự
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
00, cung cấp cho
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
035 ở dạng hex, vì vậy bạn có thể viết nó là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
036

Phần thập lục phân của thoát này không phân biệt chữ hoa chữ thường;

Bạn có thể xác định cú pháp thoát thập lục phân bằng biểu thức chính quy sau.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
039

Có một chút khó hiểu khi đề cập đến loại trình tự thoát này là "thập lục phân", vì cũng sử dụng hex

Trình tự thoát Unicode

Bất kỳ ký tự nào có mã ký tự thấp hơn

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
040 đều có thể được thoát bằng cách sử dụng giá trị thập lục phân của mã ký tự, có tiền tố là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
94. (, mã ký tự cao hơn được biểu thị bằng một cặp ký tự thay thế. )

Thoát Unicode dài sáu ký tự. Họ yêu cầu chính xác bốn ký tự sau

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
94. Nếu mã ký tự thập lục phân chỉ dài một, hai hoặc ba ký tự, bạn sẽ cần thêm các số 0 vào đầu mã đó

Biểu tượng bản quyền (

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
005) có mã ký tự
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
00, cung cấp cho
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
035 trong ký hiệu thập lục phân, vì vậy bạn có thể viết nó là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
046. Tương tự,
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
047 có thể được viết là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
048

Phần thập lục phân của loại thoát ký tự này không phân biệt chữ hoa chữ thường;

Bạn có thể xác định cú pháp thoát Unicode bằng biểu thức chính quy sau.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
051

Ghi chú. Khác với , các lối thoát Unicode là những lối thoát duy nhất được đặc tả JSON cho phép

ECMAScript 6. Thoát điểm mã Unicode

ECMAScript 6 một loại trình tự thoát mới trong chuỗi, cụ thể là thoát điểm mã Unicode. Ngoài ra, nó sẽ xác định

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
052 và
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
053, cả hai đều chấp nhận các điểm mã thay vì các đơn vị mã giống như UCS-2/UTF-16

Khi điều này được triển khai, bất kỳ ký tự nào cũng có thể được thoát bằng cách sử dụng giá trị thập lục phân của mã ký tự của nó, có tiền tố là

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
054 và có hậu tố là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
055. Điều này được phép cho các điểm mã lên tới
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
056, đây là điểm mã cao nhất được xác định bởi Unicode

Thoát điểm mã Unicode bao gồm ít nhất năm ký tự. Ít nhất một ký tự thập lục phân có thể được bao bọc trong

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
057. Không có giới hạn trên đối với số chữ số hex được sử dụng (ví dụ:
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
058) nhưng đối với các mục đích thực tế, bạn sẽ không cần nhiều hơn 6, trừ khi bạn thực hiện thao tác đệm số 0 không cần thiết

Tetragram cho biểu tượng trung tâm (

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
059) có điểm mã U+1D306, vì vậy bạn có thể viết nó là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
060. Để so sánh, nếu bạn định sử dụng biểu tượng này để biểu thị, bạn phải viết riêng các nửa thay thế.
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
061

Phần thập lục phân của loại thoát ký tự này không phân biệt chữ hoa chữ thường;

Bạn có thể xác định cú pháp thoát điểm mã Unicode bằng biểu thức chính quy sau.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
064

Kiểm soát trình tự thoát

Trong biểu thức chính quy (không phải trong chuỗi. ), bất kỳ ký tự nào có mã ký tự lớn hơn

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
032 và thấp hơn
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
066 đều có thể được thoát bằng cách sử dụng ký tự ký hiệu dấu mũ, có tiền tố là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
067

Các lối thoát điều khiển dài ba ký tự. Họ yêu cầu chính xác một ký tự sau

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
067

Ví dụ: U+000A LINE FEED là

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
069 trong ký hiệu dấu mũ (vì
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
00 và
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
01 là chữ cái thứ 10 của bảng chữ cái). Vì vậy, một biểu thức chính quy hợp lệ phù hợp với biểu tượng này sẽ là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
02, e. g.
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
03

Ký tự ký hiệu dấu mũ theo sau

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
067 trong loại thoát ký tự này không phân biệt chữ hoa chữ thường;

Dưới đây là danh sách tất cả các chuỗi thoát điều khiển có sẵn và các ký tự điều khiển mà chúng ánh xạ tới

Escape sequenceUnicode code point
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
07 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
08U+0001 START OF HEADING
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
09 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
10U+0002 START OF TEXT
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
11 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
12U+0003 END OF TEXT
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
13 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
14U+0004 END OF TRANSMISSION
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
15 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
16U+0005 ENQUIRY
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
17 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
18U+0006 ACKNOWLEDGE
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
19 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
20U+0007 BELL
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
21 or
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
22U+

Bạn có thể xác định cú pháp thoát điều khiển bằng biểu thức chính quy sau.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
59

Một công cụ để thoát nhân vật

Tôi đã viết một trình thoát chuỗi JavaScript kết hợp các loại thoát khác nhau này (ngoại trừ chuỗi không dùng nữa) và trả về chuỗi kết quả nhỏ nhất có thể. Hãy thử nó tại mẹeff. trong/js-thoát

Bạn có thể sử dụng nó để thoát bất kỳ ký tự nào, nhưng có một tùy chọn để chỉ thoát các ký tự ASCII không phải ASCII và không thể in được (có lẽ là hữu ích nhất). Bằng cách này, bạn có thể dễ dàng biến các chuỗi như

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
60 thành chuỗi tương đương chỉ có mã ASCII nhỏ nhất có thể của nó là
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
61. Quay lại khi tôi đang làm việc trên Punycode. js, công cụ này giúp tôi tiết kiệm khá nhiều thời gian

Cần thoát chuỗi trong ứng dụng JavaScript của bạn?

Về tôi

Chào bạn. Tôi là Mathias. Tôi làm việc trên Chrome DevTools và công cụ JavaScript V8 tại Google. HTML, CSS, JavaScript, Unicode, hiệu suất và bảo mật khiến tôi phấn khích. Theo dõi tôi trên Twitter, Mastodon và GitHub

Bình luận

pomeh đã viết trên.

Cảm ơn Mathias. Điều này thật tuyệt. )

Deian đã viết trên.

Bạn là một trong những nhà phát triển THỰC SỰ hữu ích nhất xung quanh. Cảm ơn bạn cho tất cả các bài viết của bạn Mathias. Chúc bạn một Giáng sinh vui vẻ & Năm mới hạnh phúc

.mario đã viết trên.

Visual Basic Script cho phép sử dụng một dạng thoát khác để biểu thị số thập phân

  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    62 hoặc
    /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    63 đại diện cho các giá trị số (Hexa-thập phân)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    64 hoặc
    /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    65 đại diện cho các giá trị số (Bát phân)
  • /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    66 hoặc
    /^[\u0000-\u007f]*$/.test("a/b"); // returns true
    /^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
    66 đại diện cho các giá trị số (Bát phân, không bắt buộc phải có O)

Thiemo đã viết trên.

Tôi đã làm một cái gì đó rất giống với 140byte. nhập cảnh một lần. http. //maettig. com/code/javascript/encode-javascript-string-in-140byt. là. html

Không đã viết trên.

Điều gì sẽ xảy ra nếu tôi cần chèn chính

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
9 vào chuỗi, tôi. e. không sử dụng nó làm ký tự thoát?

Cập nhật. Xin lỗi, tôi quên đề cập đến ngôn ngữ. JS, sử dụng JSON, cố gắng thêm dữ liệu vào ô Google Trang tính thông qua chức năng 'Blockspring' đã sửa đổi

Mathias đã viết trên.

.

Flimm đã viết về.

Nếu bạn không cẩn thận khi thêm phần đệm vào biểu thức chính quy, nó có thể hoạt động lạ

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason

Mathias đã viết trên.

Phần đệm là bắt buộc, không chỉ trong biểu thức chính quy mà ở mọi nơi.

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
71 và
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
72 không phải là chuỗi thoát hợp lệ

Stan đã viết trên.

Cảm ơn. Tôi đã cố gắng mã hóa

/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
73 bằng cách sử dụng
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
74 và không thể hiểu tại sao nó không hoạt động cho đến khi tôi thấy rằng mã hex chỉ hoạt động với
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
75 và tôi cần sử dụng
/^[\u0000-\u007f]*$/.test("a/b"); // returns true
/^[\u0-\u7f]*$/.test("a/b"); // returns false, for some reason
76

Làm cách nào để chuyển đổi hệ thập lục phân thành ký tự trong JavaScript?

Bản trình diễn trực tiếp. .
hàm hex_to_ascii(str1)
var hex = str1. toString();
var str = '';
cho (var n = 0; n < hex. chiều dài;
str += Chuỗi. fromCharCode(parseInt(hex. chất nền(n, 2), 16));
trả về str;

Làm cách nào để chuyển đổi hex sang ascii trong Java?

Định dạng Hex sang ASCII . Cut the Hex value in 2 char groups. Chuyển nó thành Số nguyên cơ số 16 bằng Số nguyên. parseInt(hex, 16) và chuyển thành char. Nối tất cả các ký tự trong StringBuilder.

Làm cách nào để chuyển đổi hex thành thập phân trong JavaScript?

Cách tốt nhất để chuyển đổi số thập lục phân thành số thập phân là sử dụng hàm parseInt() . Hàm parseInt() lấy một chuỗi làm đối số và trả về một số nguyên. parseInt(chuỗi, cơ số); .

Làm cách nào để chuyển đổi hệ thập lục phân thành chuỗi trong Java?

Hệ thập lục phân thành chuỗi .
Lấy giá trị thập lục phân (Chuỗi)
Chuyển đổi nó thành một mảng ký tự bằng phương thức toCharArray()
Đọc từng hai ký tự từ mảng và chuyển đổi chúng thành Chuỗi
Phân tích chuỗi thu được ở trên thành số nguyên cơ số 16, chuyển nó thành một ký tự
Nối tất cả các ký tự thành một chuỗi