Sách tham khảo JavaScript RegExp

Đối tượng RegExp

Biểu thức chính quy là một mẫu ký tự.

Mô hình này được sử dụng để thực hiện chức năng 'tìm kiếm và thay thế' đối với văn bản.

Trong JavaScript, đối tượng RegExp là một đối tượng có thuộc tính và phương thức.

Cú pháp

/pattern/modifier(s);

Mô hình

let pattern = /codew3c/i;

Thử ngay

Giải thích ví dụ:

codew3c Mô hình cần tìm kiếm
/codew3c/ Biểu thức chính quy
/codew3c/i Biểu thức chính quy không phân biệt chữ hoa thường

Để biết thêm về kiến thức về biểu thức chính quy, hãy đọc Hướng dẫn JavaScript RegExp.

Chỉ định

Chỉ định được sử dụng để thực hiện tìm kiếm không phân biệt chữ hoa thường và toàn cục:

Chỉ định Mô tả
g Thực hiện khớp toàn cục (tìm kiếm tất cả các khớp thay vì dừng lại sau khi khớp đầu tiên).
i Thực hiện khớp không phân biệt chữ hoa thường.
d Thực hiện khớp chuỗi con.
m Thực hiện khớp đa dòng.

Dấu ngoặc vuông

Dấu ngoặc vuông được sử dụng để tìm kiếm các ký tự trong phạm vi nào đó:

Biểu thức Mô tả
[abc] Tìm kiếm bất kỳ ký tự nào trong dấu ngoặc kép.
[^abc] Tìm kiếm bất kỳ ký tự nào không nằm trong dấu ngoặc vuông.
[0-9] Tìm kiếm bất kỳ số từ 0 đến 9 nào.
[^0-9] Tìm kiếm bất kỳ ký tự nào không trong dấu ngoặc (bất kỳ ký tự không phải là số).
(x|y) Tìm kiếm bất kỳ tùy chọn nào được chỉ định.

Ký tự đặc biệt

Ký tự đặc biệt là các ký tự có ý nghĩa đặc biệt:

Ký tự đặc biệt Mô tả
. Tìm kiếm ký tự đơn lẻ, trừ ký tự mới dòng hoặc kết thúc dòng.
\w Tìm kiếm ký tự từ.
\W Tìm kiếm ký tự không phải là từ.
\d Tìm kiếm số.
\D Tìm kiếm ký tự không phải là số.
\s Tìm kiếm ký tự trống.
\S Tìm kiếm ký tự không phải là ký tự trống.
\b Tìm kiếm khớp ở đầu hoặc cuối từ, đầu như sau: \bHI, cuối như sau: HI\b.
\B Tìm kiếm khớp nhưng không ở đầu hoặc cuối từ.
\0 Tìm kiếm ký tự NULL.
\n Tìm kiếm ký tự newline.
\f Tìm kiếm ký tự page break.
\r Tìm kiếm ký tự carriage return.
\t Tìm kiếm ký tự tab.
\v Tìm kiếm ký tự verticat tab.
\xxx Tìm kiếm ký tự được quy định bởi số octal xxx.
\xdd Tìm kiếm ký tự được quy định bởi số hex dd.
\udddd Tìm kiếm ký tự Unicode được quy định bởi số hex xxxx.

Định lượng

Định lượng Mô tả
n+ Khớp với bất kỳ chuỗi nào chứa ít nhất một n.
n* Khớp với bất kỳ chuỗi nào chứa ít nhất một hoặc nhiều n.
n? Khớp với bất kỳ chuỗi nào chứa ít nhất một n.
n{X} Khớp với bất kỳ chuỗi nào chứa X n.
n{X,Y} Khớp với bất kỳ chuỗi nào chứa từ X đến Y n.
n{X,} Khớp với bất kỳ chuỗi nào chứa ít nhất X n.
n$ Khớp với bất kỳ chuỗi nào kết thúc với n.
^n Khớp với bất kỳ chuỗi nào bắt đầu với n.
?=n Khớp với bất kỳ chuỗi nào sau này tiếp theo chuỗi n.
?!n Khớp với bất kỳ chuỗi nào sau này không tiếp theo chuỗi n.

Thuộc tính đối tượng RegExp

Thuộc tính Mô tả
constructor Trả về hàm tạo nguyên mẫu của đối tượng RegExp.
global Kiểm tra xem đã thiết lập修饰符 "g" hay chưa.
ignoreCase Kiểm tra xem đã thiết lập修饰符 "i" hay chưa.
lastIndex Định nghĩa chỉ số bắt đầu của khớp tiếp theo.
multiline Kiểm tra xem đã thiết lập修饰符 "m" hay chưa.
source Trả về văn bản của mẫu RegExp.

Phương thức đối tượng RegExp

Phương pháp Mô tả
compile() Đã bỏ不支持 từ phiên bản 1.5. Biên dịch biểu thức chính quy.
exec() Kiểm tra phần tử khớp trong chuỗi. Trả về phần tử khớp đầu tiên.
test() Kiểm tra phần tử khớp trong chuỗi. Trả về true hoặc false.
toString() Trả về giá trị chuỗi của biểu thức chính quy.

Mô tả đối tượng RegExp

Đối tượng RegExp biểu thị biểu thức chính quy, là công cụ mạnh mẽ để khớp mẫu với chuỗi.

Cú pháp trực tiếp

/pattern/attributes

Cú pháp tạo đối tượng RegExp:

new RegExp(pattern, attributes);

Tham số

Tham số pattern Là một chuỗi, chỉ định mẫu biểu thức chính quy hoặc biểu thức chính quy khác.

Tham số attributes Là một chuỗi tùy chọn, chứa thuộc tính "g", "i" và "m", lần lượt dùng để chỉ định khớp toàn bộ, khớp phân biệt chữ hoa-chữ thường và khớp đa dòng. Trước khi chuẩn hóa ECMAScript, thuộc tính m không được hỗ trợ. Nếu pattern Là biểu thức chính quy, không phải chuỗi, thì phải bỏ qua tham số này.

Giá trị trả về

Một đối tượng RegExp mới, có mô hình và dấu hiệu được chỉ định. pattern Là biểu thức chính quy而不是 chuỗi, thì hàm xây dựng RegExp() sẽ tạo đối tượng RegExp mới với cùng mô hình và dấu hiệu như biểu thức chính quy được chỉ định.

Nếu không sử dụng toán tử new, mà gọi RegExp() như một hàm, thì hành vi của nó giống như khi gọi bằng toán tử new, chỉ khi pattern Là biểu thức chính quy, nó chỉ trả về patternCòn lại, không tạo đối tượng RegExp mới.

Ném

SyntaxError - Nếu pattern Không phải biểu thức chính quy hợp lệ, hoặc attributes Chứa ký tự ngoài "g", "i" và "m", ném ngoại lệ này.

TypeError - Nếu pattern Là đối tượng RegExp, nhưng không bỏ qua attributes Tham số, ném ngoại lệ này.

Hỗ trợ trình duyệt

/regexp/ là tính năng của ECMAScript1 (ES1).

Tất cả các trình duyệt đều hỗ trợ hoàn toàn ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
Hỗ trợ Hỗ trợ Hỗ trợ Hỗ trợ Hỗ trợ Hỗ trợ

Phương pháp của đối tượng String hỗ trợ biểu thức chính quy

Phương pháp Mô tả
search Tìm kiếm giá trị khớp với biểu thức chính quy.
match Tìm thấy một hoặc nhiều khớp biểu thức chính quy.
replace Thay thế chuỗi con khớp với biểu thức chính quy.
split Chia chuỗi thành mảng chuỗi.