06/04/2021, 14:48

Bảng biểu thức Regular Expression trong Javascript - Javascript căn bản

Chúng ta đã được học Regular Expression trong Javascript và cũng đã làm một số bài tập kết hợp với một số quy tắc căn bản mà mình đã liệt kê. Nhưng đó chỉ là nhũng quy tắc căn bản nhất và hoàn toàn không đầy đủ. Vì vậy trong bài này mình sẽ bổ sung các biểu thức Regular Expression nâng cao. 1. ...

Chúng ta đã được học Regular Expression trong Javascript và cũng đã làm một số bài tập kết hợp với một số quy tắc căn bản mà mình đã liệt kê. Nhưng đó chỉ là nhũng quy tắc căn bản nhất và hoàn toàn không đầy đủ. Vì vậy trong bài này mình sẽ bổ sung các biểu thức Regular Expression nâng cao.

1. Bảng quy tắc Regular Expression

Chúng ta sẽ chia thành từng nhóm để sau này dễ tìm kiếm.

Modifiers

Brackets

Metacharacters

Quantifiers

2. Các ví dụ thực hành với biểu thức RegExp

Sau đây là các ví dụ thực hành để học Regular Expression trong Javascript.

Bài 1: Kiểm tra chuỗi xuất hiện ít nhất 10 chữ N liên tiếp và không phân biệt chữ hoa chữ thường

Ta sử dụng cú pháp {10,} để kiểm tra ít nhất 10 chữ N liên tiếp.

XEM DEMO

var pattern = /n{10,}/i;
if (pattern.test("10 chu n la nnnnnnnnnn")) {
    document.write('Chuỗi có NHIỀU hơn 10 chữ n');
}
else {
    document.write('Chuỗi có ÍT hơn 10 chữ n');
}

Bài 2: Kiểm tra chuỗi có phải là 'Zaidap.com.net' hay không

Để kiểm tra chính xác chuỗi là 'Zaidap.com.net' thì bắt buộc ta phải thêm ký tự bắt đầu ^ và kết thúc $ để fix chuỗi lại. Và có một lưu ý rằng ký tự . trong chuỗi 'Zaidap.com.net' là ký tự đặc biệt vì nó có trong danh sách các biểu thức của RegExp nên bắt buộc ta phải thêm dấu đằng trước nó.

XEM DEMO

var pattern = /^Zaidap.com.net$/i;
if (pattern.test("Zaidap.com.net")) {
    document.write('Chuỗi Zaidap.com.net');
}
else {
    document.write('Không phải chuỗi Zaidap.com.net');
}

Bài 3: Kiểm tra chuỗi là các chữ số và dài 8 ký tự

Để kiểm tra các chữ số ta dùng [0-9] và chiều dài 8 ký tự nên ta dùng {8}.

XEM DEMO

var pattern = /^[0-9]{8}$/;
if (pattern.test("12345678")) {
    document.write('Các số dài 8 ký tự');
}
else {
    document.write('Không phải là số hoặc ngắn hơn 8 ký tự');
}

Bài 4: Kiểm tra chuỗi định dạng mã thẻ cào xxxx-xxxx-xxxx-xxxx và x chính là các chữ số.

Ta sử dụng [0-9] để kiểm tra là chữ số. Và các cặp xxxx có chiều dì là 4 nên ta sử dụng {4}.

XEM DEMO

var pattern = /^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$/;
if (pattern.test("1234-1232-1321-2312")) {
    document.write('Mã thẻ hợp lệ');
}
else {
    document.write('Mã thẻ không hợp lệ');
}

3. Lời kết

Với bảng danh sách các biểu thức RegExp này bạn có thể giải mọi bài toán rồi đấy. Tuy nhiên để giải được các bài phức tạp thì đòi hỏi bạn phải thực sự rành rỏi và biết các vận dụng đúng chỗ. Ngoài các biểu thức này ra còn có một số khái niệm như Condition, Lookahead, Lookbehind nhưng mình sẽ không trình bày ở serie này mà nó nằm ở serie Regular Expression tron PHP.

Bài tiếp theo chúng ta sẽ tìm hiểu một số hàm dùng để xử lý chuỗi RegExp trong Javascript.

Vũ Văn Thanh

12 chủ đề

2597 bài viết

Cùng chủ đề
0