TopDev

Biểu thức chính quy (Regular Expression) trong JavaScript

minhu 📖 3 phút đọc

Biểu thức chính quy (Regular Expression, viết tắt là Regex) trong JavaScript là một công cụ mạnh mẽ để tìm kiếm, so khớp và thay thế các mẫu ký tự trong chuỗi. Regex được định nghĩa bởi cú pháp đặc biệt và được sử dụng cùng với các phương thức của đối tượng chuỗi và đối tượng RegExp. Dưới đây là một số thông tin cơ bản và ví dụ về cách sử dụng biểu thức chính quy trong JavaScript:

Cú pháp cơ bản#

Biểu thức chính quy được đặt giữa hai dấu gạch chéo / hoặc sử dụng hàm khởi tạo RegExp: ` let regex = /pattern/; let regexWithFlags = /pattern/g; // g: global, i: case-insensitive, m: multi-line

// Hoặc sử dụng hàm khởi tạo let regex2 = new RegExp("pattern"); let regexWithFlags2 = new RegExp("pattern", "gi"); `

Các ký tự đặc biệt trong Regex#

  • .: Khớp với bất kỳ ký tự nào ngoại trừ dòng mới.

  • ^: Bắt đầu của chuỗi.

  • $: Kết thúc của chuỗi.

  • \d: Bất kỳ chữ số nào (0-9).

  • \D: Bất kỳ ký tự nào không phải là chữ số.

  • \w: Bất kỳ ký tự từ a-z, A-Z, 0-9 hoặc _.

  • \W: Bất kỳ ký tự nào không phải là \w.

  • \s: Bất kỳ khoảng trắng nào.

  • \S: Bất kỳ ký tự nào không phải là khoảng trắng.

  • [abc]: Khớp với bất kỳ ký tự nào trong ngoặc vuông.

  • [^abc]: Khớp với bất kỳ ký tự nào không có trong ngoặc vuông.

  • a|b: Khớp với a hoặc b.

Các lượng từ trong Regex#

  • *: Khớp 0 hoặc nhiều lần.

  • +: Khớp 1 hoặc nhiều lần.

  • ?: Khớp 0 hoặc 1 lần.

  • {n}: Khớp chính xác n lần.

  • {n,}: Khớp ít nhất n lần.

  • {n,m}: Khớp từ n đến m lần.

Các phương thức thường dùng#

  • test(): Kiểm tra xem biểu thức chính quy có khớp với một chuỗi hay không. Trả về true hoặc false. let regex = /hello/; console.log(regex.test("hello world")); // true

  • exec(): Tìm kiếm một chuỗi khớp với biểu thức chính quy. Trả về một mảng chứa kết quả khớp hoặc null. let result = regex.exec("hello world"); console.log(result); // ["hello"]

  • match(): Tìm tất cả các kết quả khớp trong chuỗi. Trả về một mảng hoặc null. let str = "hello world hello"; console.log(str.match(/hello/g)); // ["hello", "hello"]

  • replace(): Thay thế các kết quả khớp trong chuỗi bằng một chuỗi khác. console.log(str.replace(/hello/g, "hi")); // "hi world hi"

  • search(): Tìm vị trí đầu tiên của kết quả khớp trong chuỗi. Trả về chỉ số hoặc -1. console.log(str.search(/world/)); // 6

  • split(): Chia chuỗi thành mảng con dựa trên biểu thức chính quy. console.log(str.split(/\s/)); // ["hello", "world", "hello"]

Ví dụ sử dụng Regex#

  • Kiểm tra địa chỉ email: let emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; console.log(emailRegex.test("example@example.com")); // true

  • Tìm và thay thế tất cả các số trong chuỗi: let str = "My phone number is 123-456-7890."; let numberRegex = /\d+/g; console.log(str.replace(numberRegex, "#")); // "My phone number is #-#-#."

Biểu thức chính quy là một công cụ rất mạnh mẽ và linh hoạt trong JavaScript, giúp dễ dàng thao tác và xử lý các chuỗi phức tạp.

Bài liên quan trong # JavaScript

✓ Đã sao chép link