[Tips Javascript]- 10 regular expressions của cao thủ front-end

Biểu thức chính quy (regular expressions ) là các mẫu dùng để tìm kiếm các bộ kí tự được kết hợp với nhau trong các chuỗi kí tự. Trong JavaScript thì biểu thức chính quy cũng đồng thời là các đối tượng, tức là khi bạn tạo ra một biểu thức chính quy là bạn có một đối tượng tương ứng. Các mẫu này được sử dụng khá nhiều trong JavaScript như phương thức exec và test của RegExp, hay phương thức match, replace, search, và split của String. Các bạn dù ít hay nhiều cũng đã từng sử dụng đến regular đúng không. 

Bài viết này tôi chôm từ một cao thủ võ lâm nên mới có những tuyệt kỹ như thế này. Có thể nó đã lỗi thời nhưng đâu đó nó cũng có giá trị với các bạn. Nói nhiều không bằng làm nhiều. Zô ô ô.... 

Sử dụng RegExp có dạng thế này:

var reg = new RegExp("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$") 
var r = 'SonTung17'.match(reg);             
if(r==null)alert('Date format error!');

Giờ chúng ta cùng xem qua 20 biểu thức chính quy thường dùng bởi các cao thủ front-end. Và họ làm thế nào chúng ta cũng theo dõi. 

1 - Xác nhận độ mạnh của mật khẩu.

Độ mạnh của mật khẩu phải là sự kết hợp giữa chữ in hoa và chữ thường và số. Các ký tự đặc biệt được bỏ qua và độ dài nằm trong khoảng từ 8-10.

^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

2 - Một chuỗi bao gồm các số, 26 chữ cái tiếng Anh hoặc dấu gạch dưới

^\\w+$

3 - Xác minh địa chỉ E-Mail

[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?

4. Ngày kiểm tra theo định dạng Việc xác minh ngày của định dạng "yyyy-mm-dd"

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

5. Kiểm tra số tiền Số lượng xác minh, chính xác đến 2 chữ số thập phân.

^[0-9]+(.[0-9]{2})?$

ví dụ:

var reg = new RegExp("^[0-9]+(.[0-9]{2})?$") 
var r = '5000.60'.match(reg);             
if(r ===null){
  alert('Kiểm tra số tiền')
}

6. Xác định phiên bản IE

IE vẫn chưa được thay thế hoàn toàn và nhiều trang vẫn cần phải tương thích với phiên bản. Sau đây là biểu thức để kiểm tra phiên bản IE.

^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$

7. Xác minh địa chỉ IP-v4

\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b

8. Xác minh địa chỉ IP-v6

(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

9. Kiểm tra HTTPS or HTTP của URL

if (!s.match(/^[a-zA-Z]+:\\/\\//))
{
    s = 'http://' + s;
}

10. Xác minh đường dẫn và mở rộng tệp

^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$

Có thể các bạn đã biết và cũng có thể đã lỗi thời nhưng đó là một tài sản của một cao thủ một thời. Nên áp dụng tới đâu thì tới nhé. he she