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.
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'); }
Để 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'); }
Để 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ự'); }
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.