Regular Expressions (Biểu thức chính quy) là một công cụ mạnh mẽ để xử lý và thao tác với chuỗi trong JavaScript. Chúng được sử dụng để tìm kiếm, thay thế và kiểm tra chuỗi dựa trên các mẫu cụ thể.
Cú pháp cơ bản của Regular Expressions
Trong JavaScript, biểu thức chính quy được định nghĩa giữa hai dấu gạch chéo (/
) hoặc sử dụng đối tượng RegExp
.
Ví dụ:
// Sử dụng dấu gạch chéo
let regex = /abc/;
// Sử dụng đối tượng RegExp
let regex = new RegExp('abc');
Các phương thức thường dùng với Regular Expressions
-
test(): Kiểm tra xem chuỗi có khớp với mẫu hay không. Trả về
true
hoặcfalse
.let regex = /hello/; let str = "hello world"; console.log(regex.test(str)); // true
-
exec(): Tìm một khớp trong chuỗi và trả về một mảng chứa thông tin về khớp hoặc
null
nếu không tìm thấy.let regex = /hello/; let str = "hello world"; console.log(regex.exec(str)); // ["hello"]
-
match(): Tìm tất cả các khớp trong chuỗi và trả về một mảng chứa các khớp.
let str = "hello world"; console.log(str.match(/o/g)); // ["o", "o"]
-
replace(): Thay thế các khớp trong chuỗi bằng một chuỗi khác.
let str = "hello world"; console.log(str.replace(/world/, "JavaScript")); // "hello JavaScript"
-
split(): Chia chuỗi thành một mảng dựa trên biểu thức chính quy.
let str = "hello world"; console.log(str.split(/ /)); // ["hello", "world"]
Các ký tự và cú pháp cơ bản trong Regular Expressions
-
Ký tự đại diện (wildcard):
.
: Đại diện cho bất kỳ ký tự nào ngoại trừ dòng mới.let regex = /h.llo/; let str = "hello"; console.log(regex.test(str)); // true
-
Ký tự đặc biệt:
\d
: Đại diện cho một chữ số (0-9).\D
: Đại diện cho bất kỳ ký tự nào không phải là chữ số.\w
: Đại diện cho một ký tự từ a-z, A-Z, 0-9 hoặc _.\W
: Đại diện cho bất kỳ ký tự nào không phải là \w.\s
: Đại diện cho ký tự khoảng trắng.\S
: Đại diện cho bất kỳ ký tự nào không phải là ký tự khoảng trắng.
-
Số lượng và khoảng:
*
: Khớp với 0 hoặc nhiều lần lặp lại của ký tự trước đó.+
: Khớp với 1 hoặc nhiều lần lặp lại của ký tự trước đó.?
: Khớp với 0 hoặc 1 lần lặp lại của ký tự trước đó.{n}
: Khớp với chính xác n lần lặp lại của ký tự trước đó.{n,}
: Khớp với ít nhất n lần lặp lại của ký tự trước đó.{n,m}
: Khớp với ít nhất n và nhiều nhất m lần lặp lại của ký tự trước đó.
-
Các ký tự mốc:
-
^
: Bắt đầu chuỗi.let regex = /^hello/; let str = "hello world"; console.log(regex.test(str)); // true
-
$
: Kết thúc chuỗi.let regex = /world$/; let str = "hello world"; console.log(regex.test(str)); // true
-
-
Nhóm và lựa chọn:
(abc)
: Nhóm các ký tự lại với nhau.a|b
: Khớp với a hoặc b.
Ví dụ sử dụng Regular Expressions trong JavaScript
-
Kiểm tra email hợp lệ:
let email = "example@example.com"; let regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; console.log(regex.test(email)); // true
-
Thay thế tất cả các chữ số trong chuỗi bằng dấu
#
:let str = "Phone: 123-456-7890"; let regex = /\d/g; console.log(str.replace(regex, "#")); // "Phone: ###-###-####"
-
Tách một chuỗi dựa trên các khoảng trắng:
let str = "Split this string by spaces"; console.log(str.split(/\s+/)); // ["Split", "this", "string", "by", "spaces"]
Kết luận
Regular Expressions là một công cụ mạnh mẽ trong JavaScript để xử lý chuỗi. Bằng cách hiểu và áp dụng các cú pháp cơ bản, bạn có thể thực hiện các tác vụ phức tạp liên quan đến chuỗi một cách hiệu quả và chính xác.
Comments