Categories JavaScript

Các biểu thức chính quy trong JavaScript

Một biểu thức chính quy là một chuỗi các ký tự hình thành một mẫu tìm kiếm. Các mẫu tìm kiếm có thể được sử dụng để tìm kiếm văn bản và hoạt động thay thế văn bản.


Biểu thức chính quy là gì?

Một biểu thức chính quy là một chuỗi các ký tự hình thành một mẫu tìm kiếm.

Khi bạn tìm kiếm dữ liệu trong văn bản, bạn có thể sử dụng mẫu tìm kiếm để mô tả điều mà bạn muốn tìm kiếm.

Một biểu thức chính quy có thể là một ký tự hoặc một mẫu phức tạp hơn.

Biểu thức chính quy có thể sử dụng để biểu diễn tất cả các dạng của tìm kiếm văn bản hoặc các hoạt động thay thế văn bản.


Cú pháp

/pattern/modifiers;

Ví dụ

var patt = /ducanhplus/i;

Giải thích ví dụ:

/ducanhplus/i  là một biểu thức chính quy.

ducanhplus  là một mẫu (dùng trong tìm kiếm).

i  là một sửa đổi (tìm kiếm sửa đổi không nhạy cảm với viết hoa hay viết thường).


Sử dụng các phương thức string

Trong JavaScript, biểu thức chính quy thường được dùng với hai phương thức string: search()replace().

Phương thức search() sử dụng một biểu thức để tìm kiếm trùng khớp, và trả về vị trí trùng khớp.

Phương thức replace() trả về một chuỗi được sửa đổi nơi mẫu được thay thế.


Sử dụng String search() với một biểu thức chính quy

Ví dụ

Sử dụng một biểu thức chính quy để tìm kiếm “ducanhplus” trong một chuỗi (tìm kiếm này là không nhạy cảm với viết hoa – viết thường):

var str = "Ghé thăm DucAnhPlus";
var n = str.search(/ducanhplus/i);

Kết quả trả về của n sẽ là: 9


Sử dụng String search() với String

Phương thức tìm kiếm cũng sẽ chấp nhận một chuỗi như là đối số tìm kiếm. Đối số chuỗi sẽ được chuyển đổi thành biểu thức chính quy:

Ví dụ

Sử dụng một chuỗi để tìm kiếm “DucAnhPlus” trong một chuỗi:

var str = "Ghé thăm DucAnhPlus";

var n = str.search("DucAnhPlus");

Sử dụng String replace() với một biểu thức chính quy

Ví dụ

Sử dụng một biểu thức chính quy không nhạy cảm với chữ viết hoa, viết thường để thay thế W3Schools thành DucAnhPlus trong một chuỗi:

var str = "Ghé thăm W3Schools!";
var res = str.replace(/w3schools/i, "DucAnhPlus");

Kết quả của res sẽ là:

Ghé thăm DucAnhPlus!


Sử dụng String replace() với String

Phương thức replace() cũng chấp nhận chuỗi như là đối số tìm kiếm:

var str = "Ghé thăm W3Schools!";
var res = str.replace("W3Schools", "DucAnhPlus");

Bạn cần chú ý điều gì?

Đối số của biểu thức chính quy (thay thế của đối số string) có thể sử dụng trong các phương thức trên.

Biểu thức chính quy có thể giúp tìm kiếm của bạn thêm sức mạnh (trường hợp không nhạy cảm viết thường, viết hoa là ví dụ).


Modifier trong biểu thức chính quy

Modifier có thể sử dụng để thực hiện tìm kiếm toàn cục không nhạy cảm viết hoa viết thường:

Modifier Mô tả
i Thực thi các tìm kiếm không nhạy cảm
g Thực thi tìm kiếm toàn cục (tìm tất cả các đối tượng phù hợp thay vì dừng lại sau tìm kiếm đầu tiên)
m Thực thi tìm kiếm nhiều dòng

Các mẫu biểu thức chính quy

Dấu ngoặc vuông được sử dụng để tìm một khoảng các ký tự:

Biểu thức Mô tả
[abc] Tìm kiếm bất cứ ký tự nào nằm trong ngoặc vuông
[0-9] Tìm bất cứ số nào nào nằm trong ngoặc vuông
(x|y) Tìm bất cứ lựa chọn thay thế với phân tách bằng|

metacharacters là những ký tự với ý nghĩa đặc biệt:

Metacharacter Mô tả
\d Tìm một số
\s Tìm một ký tự trống
\b Tìm chính xác ở đầu hoặc ở cuối của một từ
\uxxxx Tìm một ký tự Unicode chỉ định bởi số hệ thập lục phân xxxx

Quantifiers định nghĩa số lượng:

Lượng hoá Mô tả
n+ Phù hợp với bất kỳ chuỗi có chứa ít nhất một n
n* Phù hợp với bất kỳ chuỗi chứa số không hoặc nhiều lần xuất hiện của n
n? Phù hợp với bất kỳ chuỗi chứa số không hay một lần xuất hiện của n

Sử dụng đối tượng RegExp

Trong JavaScript, đối tượng RegExp là một biểu thức chính quy với các thuộc tính và phương thức được xác định trước.


Sử dụng test()

Phương thức test() là một phương thức biểu thức RegExp.

Nó tìm kiếm một chuỗi trong mẫu, và trả về true hoặc false, phụ thuộc vào kết quả.

Ví dụ dưới đây tìm kiếm ký tự “s” trong một chuỗi:

Ví dụ

var patt = /s/;
patt.test("Những thứ tốt nhất trong cuộc sống là miễn phí!");

Khi có ký tự “s” trong chuỗi, đầu ra của các mã trên sẽ là: true

Bạn không cần phải đặt biểu thức chính quy trong biến đầu tiên. Hai dòng trên có thể được rút ngắn thành một như sau:

/s/.test("Những thứ tốt nhất trong cuộc sống là miễn phí!");

Sử dụng exec()

Phương thức exec() là một phương thức biểu thức RegExp.

Nó tìm kiếm một chuỗi cho một mẫu chỉ định, và trả về văn bản tìm thấy.

Nếu không đối tượng nào được tìm thấy, nó trả về kết quả null.

Ví dụ dưới đây tìm kiếm một chuỗi cho ký tự “s”:

Ví dụ 1

/s/.exec("Những thứ tốt nhất trong cuộc sống là miễn phí!");

Khi có ký tự “s” trong chuỗi, đầu ra của các mã trên sẽ là: s


Thư mục RegExp hoàn chỉnh

Cho thư mục hoàn chỉnh, truy cập thư mục RegExp JavaScript hoàn chỉnh.

Thư mục bao gồm các mô tả và ví dụ cho các thuộc tính và phương thức của RegExp.

Back to Top