Welcome 🎉

logo

ReactLMS

Search
Light Mode
Contact Us

10 min to read

Contact us

No results for your search.
Sorry, an unexpected error occurred

Khái niệm


Regular Expression là một biểu thức đặc biệt được sử dụng để tìm kiếm, phân tích và thay thế các chuỗi ký tự trong văn bản. Biểu thức này được tạo thành từ các ký tự đặc biệt và các quy tắc cú pháp. Với Regular Expression, chúng ta có thể xác định các mẫu để tìm kiếm trong văn bản một cách linh hoạt và mạnh mẽ.


Tìm kiếm văn bản


Để tìm kiếm một mẫu trong văn bản, chúng ta sử dụng phương thức .match() hoặc .test().


Phương thức .match() trả về một mảng chứa các kết quả của việc tìm kiếm mẫu trong văn bản.

const text = "Hello, world!";
const pattern = /world/;

const result = text.match(pattern);

console.log(result); // Output: ["world"]






Phương thức .test() trả về true nếu mẫu được tìm thấy trong văn bản, ngược lại trả về false.

const text = "Hello, world!";
const pattern = /world/;

const isMatch = pattern.test(text);

console.log(isMatch); // Output: true







Thay thế văn bản


Để thay thế một mẫu trong văn bản, chúng ta sử dụng phương thức .replace(). Phương thức này trả về một chuỗi mới với các ký tự đã được thay thế.

const text = "Hello, world!";
const pattern = /world/;

const newText = text.replace(pattern, "universe");

console.log(newText); // Output: "Hello, universe!"







Tách và lấy thông tin từ văn bản


Chúng ta cũng có thể sử dụng Regular Expression để tách lấy thông tin cần thiết từ văn bản. Xem ví dụ sau:

const text = "My email address is example@example.com";
const pattern = /(\w+)@(\w+)\.com/;

const result = text.match(pattern);

console.log(result[0]); // Output: "example@example.com"
console.log(result[1]); // Output: "example"
console.log(result[2]); // Output: "example"






Trong ví dụ trên, chúng ta sử dụng Regular Expression để tìm kiếm và tách lấy địa chỉ email từ văn bản. Kết quả trả về là một mảng chứa các kết quả phù hợp. Chúng ta có thể truy cập các kết quả này thông qua các chỉ số trong mảng.


Ký tự “.”


ký tự . đại diện cho bất kỳ ký tự nào ngoại trừ ký tự xuống dòng.

const text = "Hello, world!";
const pattern = /H.llo/;

const isMatch = pattern.test(text);

console.log(isMatch); // Output: true






Trong ví dụ trên, mẫu /H.llo/ sẽ tìm kiếm những chuỗi có chữ “H” ở đầu, sau đó là một ký tự bất kỳ, và tiếp theo là “llo”. Kết quả là “Hello” sẽ khớp với mẫu này.


Ký tự ”()”


Ký tự [] trong Regular Expression được sử dụng để nhóm một tập hợp các ký tự được chấp nhận.

const text = "000.000."
const pattern = /(\d{3}\.)+/

const isMatch = pattern.test(text);

console.log(isMatch); //Output : true






Trong ví dụ trên, mẫu /(\d{3}\.)+/ sẽ tìm thấy các mẫu có 3 số và 1 ký tự chấm phía sau, mẫu này có thể lặp lại ít nhất 1 lần.


Ký tự “[]”


Ký tự [] trong Regular Expression được sử dụng để xác định một tập hợp các ký tự được chấp nhận.

const text = "Hello, world!";
const pattern = /[Hh]ello/;

const isMatch = pattern.test(text);

console.log(isMatch); // Output: true






Trong ví dụ trên, mẫu /[Hh]ello/ sẽ tìm kiếm chuỗi có chữ “H” hoặc “h” ở đầu, và sau đó là “ello”. Kết quả là “Hello” sẽ khớp với mẫu này.


Cũng có thể sử dụng dấu “-“ để xác định một phạm vi các ký tự. Ví dụ:

const text = "Hello, world!";
const pattern = /[A-Za-z]+/;

const result = text.match(pattern);

console.log(result); // Output: ["Hello", "world"]






Trong ví dụ trên, mẫu /[A-Za-z]+/ sẽ tìm kiếm chuỗi có ít nhất một ký tự chữ cái. Kết quả là [“Hello”, “world”] sẽ khớp với mẫu này.


Ký tự “^” và “$”


Ký tự ^ trong Regular Expression được sử dụng để xác định điểm bắt đầu của văn bản, trong khi ký tự $ được sử dụng để xác định điểm kết thúc của văn bản. Ví dụ:

const text = "Hello, world!";
const pattern = /^Hello/;

const isMatch = pattern.test(text);

console.log(isMatch); // Output: true






Trong ví dụ trên, mẫu /^Hello/ sẽ tìm kiếm chuỗi có “Hello” ở đầu. Kết quả là “Hello” sẽ khớp với mẫu này.

const text = "Hello, world!";
const pattern = /world!$/;

const isMatch = pattern.test(text);

console.log(isMatch); // Output: true






Trong ví dụ trên, mẫu /world!$/ sẽ tìm kiếm chuỗi có “world!” ở cuối. Kết quả là “world!” sẽ khớp với mẫu này.


Ký tự “*”, “+”,"{}" và “?”


Ký tự * trong Regular Expression cho phép ký tự trước nó xuất hiện 0 hoặc nhiều lần.

Ký tự + cho phép ký tự trước nó xuất hiện 1 hoặc nhiều lần.

Ký tự ? cho phép ký tự trước nó xuất hiện 0 hoặc 1 lần.

Ký tự {} cho phép quy định số lượng trong 1 khoảng quy định, ví dụ {2,5} tức số lần lặp lại của ký tự ít nhất là 1 và nhiều nhất là 5

Ví dụ:

const text = "Heeeello, world!";
const pattern = /He*llo/;

const isMatch = pattern.test(text);

console.log(isMatch); // Output: true






Trong ví dụ trên, mẫu /He*llo/ sẽ tìm kiếm chuỗi có “H” ở đầu, sau đó có 0 hoặc nhiều ký tự “e”, và tiếp theo là “llo”. Kết quả là “Heeeello” sẽ khớp với mẫu này.


Ký tự đại diện văn bản


\d: Đại diện cho bất kỳ chữ số nào.

\D : Đại diện cho bất kỳ ký tự không phải là chữ số.

\w: Đại diện cho bất kỳ ký tự chữ cái hoặc số nào.

\W : Đại diện cho bất kỳ ký tự không phải là chữ cái hoặc số.

\s: Đại diện cho khoảng trắng hoặc ký tự dấu cách.

const text = "Hello, 123!";
const pattern = /\d+/;

const result = text.match(pattern);

console.log(result); // Output: ["123"]






Trong ví dụ trên, mẫu /\d+/ sẽ tìm kiếm chuỗi có ít nhất một chữ số. Kết quả là [“123”] sẽ khớp với mẫu này.




Read More
On This Page