Tìm hiểu bảng biểu thức Regular Expression trong Javascript

Admin

Administrator
Thành viên BQT
#1
Tìm hiểu bảng biểu thức Regular Expression trong Javascript

Chúng ta đã được tìm hiểu 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

bang-bieu-thuc-1.png

Brackets

bang-bieu-thuc-2.png

Metacharacters

bang-bieu-thuc-3.png

Quantifiers

bang-bieu-thuc-4.png

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.

Ví dụ 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.
Mã:
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');
}
Ví dụ 2: Kiểm tra chuỗi có phải là 'vnxf.vn' hay không

Để kiểm tra chính xác chuỗi là 'vnxf.vn' 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 'vnxf.vn' 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ó.

Mã:
var pattern = /^vnxf\.vn$/i;
if (pattern.test("freetuts.net")) {
    document.write('Chuỗi vnxf.vn');
}
else {
    document.write('Không phải chuỗi vnxf.vn');
}
Ví dụ 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}.
Mã:
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ự');
}
Ví dụ 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ài là 4 nên ta sử dụng {4}.

Mã:
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 trong 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.

Chúc các bạn thành công.


Nguồn: freetuts.net​
 

Từ khóa phổ biến

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

Top