Regular Expression trong JavaScript - Fedu

CHÀO MỪNG BẠN ĐẾN VỚI THƯ VIỆN HỌC TẬP & ĐÀO TẠO CƠ BẢN

Regular Expression trong JavaScript

JavaScript

Hướng dẫn JavaScript

Biểu mẫu JavaScript

Đối tượng JavaScript

Hàm JavaScript

DOM JavaScript

Trình duyệt BOM

JavaScript Ajax

JavaScript Json

Một Regular Expression là một dãy ký tự tạo thành một mẫu tìm kiếm. Mẫu tìm kiếm có thể được sử dụng cho tìm kiếm văn bản và các thao tác thay thế văn bản.

Regular Expression là gì?

Một Regular Expression là một dãy ký tự tạo thành một mẫu tìm kiếm.

Khi bạn tìm kiếm dữ liệu trong một văn bản, bạn có thể sử dụng mẫu tìm kiếm này để mô tả những gì bạn đang tìm kiếm. Một Regular Expression có thể là một ký tự đơn lẻ, hoặc một mẫu phức tạp hơn.

Regular Expression có thể được sử dụng để thực hiện tất cả các loại tìm kiếm văn bản và các thao tác thay thế văn bản.

Cú pháp:

/pattern/modifiers;

Ví dụ:

var patt = /w3schools/i;

Giải thích ví dụ:

/ W3schools / i là một regular expression.

W3schools là một mẫu (được sử dụng trong một tìm kiếm).

i là một modifier (sửa đổi việc tìm kiếm không phân biệt chữ hoa chữ thường).

Sử dụng các phương thức chuỗi

Trong JavaScript, các regular expression thường được sử dụng với hai phương thức chuỗi: search() và replace().

Phương thức search() sử dụng một biểu thức để tìm kiếm một kết hợp, và trả về vị trí của trận đấu. Phương thức replace() trả về một chuỗi đã thay đổi, nơi mẫu được thay thế.

Sử dụng chuỗi search() với một Regular Expression

Sử dụng một Regular Expression để thực hiện tìm kiếm số ký tự viết hoa với trường hợp cho “w3schools” trong một chuỗi:

var str = “Visit W3Schools”;
var n = str.search(/w3schools/i);

Kết quả là:

6

Sử dụng chuỗi search() với chuỗi

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

Ví dụ sử dụng một chuỗi để thực hiện tìm kiếm cho “W3schools” trong một chuỗi:

var str = “Visit W3Schools!”;
var n = str.search(“W3Schools”);

Đối số Regular Expression (thay vì đối số chuỗi) có thể được sử dụng trong các phương thức trên. Regular Expression có thể làm cho tìm kiếm của bạn mạnh hơn nhiều.

Lượng hóa (Modifier)

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

Modifier Mô tả
i Thực hiện so khớp không phân biệt kiểu chữ (case-insensitive)
g Thực hiện so khớp Global, mà tìm tất cả các so khớp thay vì dừng lại sau so khớp đầu tiên
m Xác định nếu chuỗi có các ký tự newline (dòng mới) hoặc carriage return , toán tử ^ và $ sẽ so khớp với một giới hạn newline (dòng mới), thay vì một giới hạn chuỗi

Các dấu ngoặc vuông

Các dấu ngoặc vuông ([]) được sử dụng để tìm một dãy ký tự.

Expression Mô tả
[abc] So khớp bất kỳ một ký tự nào trong dấu ngoặc vuông
[0-9] So khớp bất kỳ số thập phân nào từ 0 đến 9
(x|y) So khớp bất kỳ phương án nào được tách ra bằng |

Metacharacters là những ký tự mang ý nghĩa đặc biệt:

Metacharacter Mô tả
\d Một chữ số (0-9)
\s Một ký tự khoảng trống trắng (space, tab, dòng mới)
\b So khớp bắt đầu hoặc kết thúc của một từ
\uxxxx  Ký tự Unicode được xác định bởi số thập lục phân xxxx; ví dụ: \u0009 là \t

Quantifiers định nghĩa một phép lượng hóa:

Quantifier Mô tả
n+ So khớp bất kỳ chuỗi nào chứa ít nhất một p
n* So khớp bất kỳ chuỗi nào chứa 0 hoặc nhiều p
n? So khớp bất kỳ chuỗi nào chứa 1 hoặc nhiều p

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

Trong JavaScript, đối tượng RegExp là một đối tượng regular expression với các thuộc tính và phương pháp đượ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 cho một mẫu, và trả về true hoặc false, tùy thuộc vào kết quả. Ví dụ sau tìm kiếm một chuỗi ký tự “e”:

var patt = /e/;
patt.test(“The best things in life are free!”);

Vì có một chữ “e” trong chuỗi, kết quả của đoạn mã trên sẽ là:

true

Bạn không phải đặt regular expression vào một biến trước tiên. Hai dòng trên có thể được rút ngắn thành một:

/e/.test(“The best things in life are free!”);

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 xác định, và trả về văn bản tìm thấy. Nếu không tìm thấy, nó sẽ trả về null. Ví dụ sau tìm kiếm một chuỗi ký tự “e”:

/e/.exec(“The best things in life are free!”);

Vì có một chữ “e” trong chuỗi, kết quả của đoạn mã trên sẽ là:

e