Giải mã unicode javascript

Trong phần này, chúng ta sẽ thử giải câu đố Javascript Unicode Decoder bằng cách sử dụng ngôn ngữ máy tính. Mã được hiển thị dưới đây minh họa điểm này

decodeURIComponent(JSON.parse('"http\\u00253A\\u00252F\\u00252Fexample.com"'));
> 'http://example.com'

Các cách tiếp cận khác nhau để giải quyết vấn đề Bộ giải mã Unicode Javascript được nêu trong đoạn mã sau

Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.

Thông qua nhiều ví dụ, chúng tôi đã học được cách giải quyết vấn đề Bộ giải mã Unicode Javascript

Làm cách nào để giải mã các ký tự Unicode?

Làm cách nào để giải mã văn bản bằng mật mã Unicode? . Thí dụ. Tin nhắn 68,67,934,68,8364 được dịch theo từng số. 68 => D , 67 => C , v.v., để có được DCΦD€

JavaScript có thể đọc Unicode không?

Giống như trong mã nguồn, Unicode cũng có thể được biểu diễn trong một chuỗi Javascript sử dụng cú pháp \uXXXX

Làm cách nào để giải mã một chuỗi bằng Unicode đã thoát?

Sử dụng bộ giải mã diễn giải '\u00c3' thoát dưới dạng điểm mã unicode U+00C3 (CHỮ VỐN LATIN A CÓ DẤU TILDE, 'Ã'). 22-Tháng 9-2018

Làm cách nào để thoát khỏi Unicode?

Chuỗi thoát unicode là dấu gạch chéo ngược theo sau là chữ 'u' theo sau là bốn chữ số thập lục phân (0-9a-fA-F). Nó khớp một ký tự trong chuỗi đích với giá trị được chỉ định bởi bốn chữ số. Ví dụ: ”\u0041“ khớp với chuỗi đích ”A“ khi mã hóa ký tự ASCII được sử dụng

UTF-8 có giống với Unicode không?

Sự khác biệt giữa Unicode và UTF-8 Unicode là một bộ ký tự. UTF-8 đang mã hóa. Unicode là danh sách các ký tự có số thập phân duy nhất (điểm mã)

UTF 16 và Unicode có giống nhau không?

UTF-16 là mã hóa Unicode trong đó mỗi ký tự bao gồm một hoặc hai phần tử 16 bit. Unicode ban đầu được thiết kế dưới dạng mã hóa 16 bit thuần túy, nhằm mục đích đại diện cho tất cả các tập lệnh hiện đại

JavaScript có sử dụng UTF-8 hoặc UTF-16 không?

Hầu hết các công cụ JavaScript sử dụng mã hóa UTF-16, vì vậy hãy xem chi tiết về UTF-16. UTF-16 (tên dài. 16-bit Unicode Transformation Format) là một mã hóa có độ dài thay đổi. Các điểm mã từ BMP được mã hóa bằng một đơn vị mã 16-bit. 15-Nov-2021

JavaScript có sử dụng Unicode hay ASCII không?

Trong nội bộ, mã nguồn JavaScript được coi là một chuỗi các đơn vị mã UTF-16. Theo Mục 6 của đặc tả EMCAScript. Văn bản nguồn ECMAScript được biểu diễn dưới dạng một chuỗi ký tự trong mã hóa ký tự Unicode, phiên bản 3. 0 trở lên

JavaScript có sử dụng UTF-8 không?

các công cụ tạo tập lệnh đọc hầu hết các trang web HTML5 dưới dạng UTF-8, bao gồm cả các trang JavaScript bên ngoài của riêng chúng. Sau đó, họ dịch hoặc "mã hóa" lại thành UTF-16 trong bộ nhớ. 23-Jul-2018

Giải mã Unicode là gì?

Decode/Unescape Unicode Entities Unicode là một tiêu chuẩn công nghiệp điện toán để mã hóa, biểu diễn và xử lý văn bản nhất quán được thể hiện trong hầu hết các hệ thống chữ viết trên thế giới

Biểu thức chính quy là các mẫu được sử dụng để so khớp các tổ hợp ký tự trong chuỗi. Trong JavaScript, biểu thức chính quy cũng là đối tượng. Các mẫu này được sử dụng với các phương pháp

const re = new RegExp('ab+c');
8 và
const re = new RegExp('ab+c');
9 của
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
0 và với các phương pháp
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
1,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
2,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
3,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
4,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
5 và
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
6 của
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
7. Chương này mô tả các biểu thức chính quy JavaScript

Tạo biểu thức chính quy

Bạn xây dựng một biểu thức chính quy theo một trong hai cách

  • Sử dụng một biểu thức chính quy, bao gồm một mẫu được đặt giữa các dấu gạch chéo, như sau

    Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
    
    2

    Các ký tự biểu thức chính quy cung cấp khả năng biên dịch biểu thức chính quy khi tập lệnh được tải. Nếu biểu thức chính quy không đổi, việc sử dụng biểu thức này có thể cải thiện hiệu suất
  • Hoặc gọi hàm khởi tạo của đối tượng
    function escapeRegExp(string) {
      return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
    }
    
    0 như sau

    const re = new RegExp('ab+c');
    

    Việc sử dụng hàm tạo cung cấp khả năng biên dịch thời gian chạy của biểu thức chính quy. Sử dụng hàm tạo khi bạn biết mẫu biểu thức chính quy sẽ thay đổi hoặc bạn không biết mẫu và đang lấy nó từ một nguồn khác, chẳng hạn như đầu vào của người dùng

Viết một mẫu biểu thức chính quy

Mẫu biểu thức chính quy bao gồm các ký tự đơn giản, chẳng hạn như

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
9 hoặc kết hợp các ký tự đơn giản và ký tự đặc biệt, chẳng hạn như
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
60 hoặc
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
61. Ví dụ cuối cùng bao gồm dấu ngoặc đơn, được sử dụng làm thiết bị bộ nhớ. Kết quả khớp với phần này của mẫu được ghi nhớ để sử dụng sau này, như được mô tả trong Sử dụng nhóm

Ghi chú. Nếu bạn đã quen thuộc với các dạng của biểu thức chính quy, bạn cũng có thể đọc cheatsheet để tra cứu nhanh một mẫu/cấu trúc cụ thể

Sử dụng các mẫu đơn giản

Các mẫu đơn giản được tạo từ các ký tự mà bạn muốn tìm đối sánh trực tiếp. Ví dụ: mẫu

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
9 khớp với các tổ hợp ký tự trong chuỗi chỉ khi chuỗi chính xác
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
63 xảy ra (tất cả các ký tự cùng nhau và theo thứ tự đó). Một trận đấu như vậy sẽ thành công trong các chuỗi
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
64 và
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
65. Trong cả hai trường hợp, kết quả khớp với chuỗi con
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
63. Không có sự trùng khớp nào trong chuỗi
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
67 bởi vì trong khi nó chứa chuỗi con
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
68, nó không chứa chính xác chuỗi con
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
63

Sử dụng ký tự đặc biệt

Khi tìm kiếm đối sánh yêu cầu nhiều thứ hơn là đối sánh trực tiếp, chẳng hạn như tìm một hoặc nhiều chữ b hoặc tìm khoảng trắng, bạn có thể bao gồm các ký tự đặc biệt trong mẫu. Ví dụ: để khớp một

const re = new RegExp('ab+c');
60 duy nhất theo sau là 0 hoặc nhiều hơn
const re = new RegExp('ab+c');
61 theo sau là
const re = new RegExp('ab+c');
62, bạn sẽ sử dụng mẫu
Use String.fromCharCode() like this: String.fromCharCode(parseInt(input,16)). When you put a Unicode value in a string using \u, it is interpreted as a hexdecimal value, so you need to specify the base (16) when using parseInt.
60.
const re = new RegExp('ab+c');
64 sau
const re = new RegExp('ab+c');
61 có nghĩa là "0 hoặc nhiều lần xuất hiện của mục trước đó. " Trong chuỗi
const re = new RegExp('ab+c');
66, mẫu này sẽ khớp với chuỗi con
const re = new RegExp('ab+c');
67

Các trang sau đây cung cấp danh sách các ký tự đặc biệt khác nhau phù hợp với từng danh mục, cùng với các mô tả và ví dụ

khẳng định

Các xác nhận bao gồm các ranh giới, biểu thị phần đầu và phần cuối của dòng và từ cũng như các mẫu khác biểu thị theo một cách nào đó rằng có thể khớp (bao gồm biểu thức nhìn về phía trước, nhìn về phía sau và biểu thức điều kiện)

lớp nhân vật

Phân biệt các loại ký tự. Ví dụ, phân biệt giữa các chữ cái và chữ số

Nhóm và phản hồi

Các nhóm nhóm nhiều mẫu thành một tổng thể và việc chụp các nhóm cung cấp thêm thông tin khớp phụ khi sử dụng mẫu biểu thức chính quy để khớp với một chuỗi. Backreferences đề cập đến một nhóm được chụp trước đó trong cùng một biểu thức chính quy

định lượng

Cho biết số lượng ký tự hoặc biểu thức để khớp

Thuộc tính Unicode thoát

Phân biệt dựa trên các thuộc tính ký tự unicode, ví dụ: chữ hoa và chữ thường, ký hiệu toán học và dấu chấm câu

Nếu bạn muốn xem tất cả các ký tự đặc biệt có thể được sử dụng trong biểu thức chính quy trong một bảng, hãy xem phần sau

Ký tự đặc biệt trong biểu thức chính quy. Ký tự / cấu trúcBài viết tương ứng_______268,
const re = new RegExp('ab+c');
69,
const re = new RegExp('ab+c');
60,
const re = new RegExp('ab+c');
61,
const re = new RegExp('ab+c');
62,
const re = new RegExp('ab+c');
63,
const re = new RegExp('ab+c');
64,
const re = new RegExp('ab+c');
65,
const re = new RegExp('ab+c');
66,
const re = new RegExp('ab+c');
67,
const re = new RegExp('ab+c');
68,
const re = new RegExp('ab+c');
69,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
60,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
61,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
62,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
63,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
64,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
65,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
66

lớp nhân vật

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
67,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
68,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
69,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
60, ________ 561, ________ 562, ________ 563, ________ 564

khẳng định

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
65,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
66, ________ 567, ________ 568, ________ 569, ________ 660,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
61

Nhóm và phản hồi

const re = new RegExp('ab+c');
64,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
63, ________ 664, ________ 665, ________ 666, ________ 667

định lượng

________ 668, ________ 669 Thoát thuộc tính Unicode

Ghi chú. Một cheatsheet lớn hơn cũng có sẵn (chỉ tổng hợp các phần của các bài viết riêng lẻ đó)

bỏ trốn

Nếu bạn cần sử dụng bất kỳ ký tự đặc biệt nào theo nghĩa đen (ví dụ: thực sự đang tìm kiếm

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
60), bạn phải thoát ký tự đó bằng cách đặt dấu gạch chéo ngược trước ký tự đó. Ví dụ: để tìm kiếm
const re = new RegExp('ab+c');
60 theo sau là
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
60 theo sau là
const re = new RegExp('ab+c');
61, bạn sẽ sử dụng
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
64 — dấu gạch chéo ngược "thoát"
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
60, làm cho nó theo nghĩa đen thay vì đặc biệt

Tương tự, nếu bạn đang viết một biểu thức chính quy bằng chữ và cần khớp với dấu gạch chéo ("/"), bạn cần thoát dấu đó (nếu không, nó sẽ kết thúc mẫu). Ví dụ: để tìm kiếm chuỗi "/example/" được theo sau bởi một hoặc nhiều ký tự chữ cái, bạn sẽ sử dụng

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
66—dấu gạch chéo ngược trước mỗi dấu gạch chéo biến chúng thành chữ

Để khớp với dấu gạch chéo ngược theo nghĩa đen, bạn cần thoát khỏi dấu gạch chéo ngược. Chẳng hạn, để khớp với chuỗi "C. \" trong đó "C" có thể là bất kỳ chữ cái nào, bạn sẽ sử dụng

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
67 — dấu gạch chéo ngược đầu tiên thoát khỏi dấu gạch chéo ngược sau nó, do đó, biểu thức sẽ tìm kiếm dấu gạch chéo ngược theo nghĩa đen

Nếu sử dụng hàm tạo

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
0 với một chuỗi ký tự, hãy nhớ rằng dấu gạch chéo ngược là một dấu thoát trong chuỗi ký tự, vì vậy, để sử dụng nó trong biểu thức chính quy, bạn cần thoát nó ở cấp độ chuỗi ký tự.
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
64 và
const re = new RegExp('ab+c');
00 tạo cùng một biểu thức, tìm kiếm "a" theo sau là chữ "*" theo sau là "b"

Nếu các chuỗi thoát chưa có trong mẫu của bạn, bạn có thể thêm chúng bằng cách sử dụng

const re = new RegExp('ab+c');
01

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}

Chữ "g" sau biểu thức chính quy là một tùy chọn hoặc cờ thực hiện tìm kiếm toàn cầu, tìm kiếm trong toàn bộ chuỗi và trả về tất cả các kết quả phù hợp. Nó được giải thích chi tiết dưới đây trong Advanced Searching With Flags

Tại sao điều này không được tích hợp vào JavaScript?

Sử dụng dấu ngoặc đơn

Dấu ngoặc đơn xung quanh bất kỳ phần nào của mẫu biểu thức chính quy làm cho phần đó của chuỗi con phù hợp được ghi nhớ. Sau khi được ghi nhớ, chuỗi con có thể được gọi lại cho mục đích sử dụng khác. Xem Nhóm và phản hồi để biết thêm chi tiết

Sử dụng biểu thức chính quy trong JavaScript

Các biểu thức chính quy được sử dụng với các phương thức

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
0
const re = new RegExp('ab+c');
9 và
const re = new RegExp('ab+c');
8 và với các phương thức
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
7
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
1,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
3,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
5 và
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
6

Phương thứcMô tả
const re = new RegExp('ab+c');
8Thực hiện tìm kiếm đối sánh trong một chuỗi. Nó trả về một mảng thông tin hoặc
const re = new RegExp('ab+c');
11 khi không khớp.
const re = new RegExp('ab+c');
9Kiểm tra sự trùng khớp trong một chuỗi. Nó trả về
const re = new RegExp('ab+c');
13 hoặc
const re = new RegExp('ab+c');
14.
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
1Trả về một mảng chứa tất cả các kết quả phù hợp, bao gồm cả các nhóm bắt giữ hoặc
const re = new RegExp('ab+c');
11 nếu không tìm thấy kết quả phù hợp.
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
2Trả về một iterator chứa tất cả các kết quả phù hợp, bao gồm cả các nhóm bắt giữ.
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
5Kiểm tra sự trùng khớp trong một chuỗi. Nó trả về chỉ mục của trận đấu hoặc
const re = new RegExp('ab+c');
19 nếu tìm kiếm không thành công.
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
3 Thực hiện tìm kiếm một chuỗi khớp trong một chuỗi và thay thế chuỗi con khớp bằng một chuỗi con thay thế.
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
4Thực hiện tìm kiếm tất cả các kết quả phù hợp trong một chuỗi và thay thế các chuỗi con phù hợp bằng một chuỗi con thay thế.
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
6Sử dụng một biểu thức chính quy hoặc một chuỗi cố định để ngắt một chuỗi thành một mảng các chuỗi con

Khi bạn muốn biết liệu một mẫu có được tìm thấy trong một chuỗi hay không, hãy sử dụng các phương thức

const re = new RegExp('ab+c');
9 hoặc
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
5; . Nếu bạn sử dụng
const re = new RegExp('ab+c');
8 hoặc
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
1 và nếu khớp thành công, các phương thức này trả về một mảng và cập nhật các thuộc tính của đối tượng biểu thức chính quy được liên kết và cả đối tượng biểu thức chính quy được xác định trước,
function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
0. Nếu khớp không thành công, phương thức
const re = new RegExp('ab+c');
8 trả về
const re = new RegExp('ab+c');
11 (bắt buộc phải trả về
const re = new RegExp('ab+c');
14)

Trong ví dụ sau, người dùng phải nhập số điện thoại. Khi người dùng nhấn nút "Kiểm tra", tập lệnh sẽ kiểm tra tính hợp lệ của số. Nếu số hợp lệ (khớp với chuỗi ký tự được chỉ định bởi biểu thức chính quy), tập lệnh hiển thị thông báo cảm ơn người dùng và xác nhận số. Nếu số không hợp lệ, tập lệnh sẽ thông báo cho người dùng rằng số điện thoại không hợp lệ