30 đoạn mã Regex hữu ích cho các Web Developer [Phần 1]

Chia sẻ 12

Biểu thức chính quy là một công cụ mạnh mẽ nên có trong mọi vành đai công cụ của nhà phát triển. Chúng có thể khớp với một chuỗi các ký tự dựa trên các tham số rất phức tạp, có thể giúp bạn tiết kiệm rất nhiều thời gian khi xây dựng các trang web động.

Các nhà phát triển web phải đối mặt với các nhiệm vụ khác với các nhà phát triển phần mềm nhưng vẫn còn nhiều nguyên tắc cơ bản về mã giống nhau. Các biểu thức chính quy (hoặc regex) sẽ khó cho những người mới bắt đầu tìm hiểu về chúng, nhưng chúng có thể rất mạnh khi được sử dụng đúng cách.

Phần khó nhất là học cú pháp và học cách viết mã regex của riêng bạn từ đầu. Để tiết kiệm thời gian, mình sẽ đưa ra 30 đoạn mã regex khác nhau mà bạn có thể kết hợp vào các dự án phát triển. Và vì regex bị giới hạn ở một ngôn ngữ duy nhất, bạn có thể áp dụng các đoạn mã này cho bất kỳ thứ gì từ JavaScript sang PHP hoặc Python.

1. Password Strength

^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$

Kiểm tra độ mạnh của mật khẩu thường là chủ quan nên không có câu trả lời chính xác tuyệt đối trong trường hợp này. Còn minh cảm thấy đoạn regex này là một điểm khởi đầu tuyệt vời nếu bạn không muốn viết trình kiểm tra độ mạnh mật khẩu của riêng mình từ đầu.

2. Hexadecimal Color

\#([a-fA-F]|[0-9]){3, 6}

Trong quá trình phát triển, chỉnh sửa web, chúng ta sử dụng rất nhiều đến mã màu hex. Đoạn mã regex này có thể được sử dụng để kéo các mã hex khớp từ bất kỳ chuỗi nào cho bất kỳ mục đích nào.

3. Validate Email Addres

/[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4}/igm

Một trong những nhiệm vụ phổ biến nhất đối với nhà phát triển là kiểm tra xem một chuỗi có được định dạng theo kiểu địa chỉ email hay không. Có nhiều biến thể khác nhau để thực hiện nhiệm vụ này, vì vậy liên kết SitePoint này cung cấp hai đoạn mã riêng biệt để kiểm tra cú pháp e-mail đối với một chuỗi.

4. Địa chỉ IPv4

/\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/

Tương tự như một địa chỉ email là địa chỉ IP điển hình được sử dụng để xác định một máy tính cụ thể truy cập Internet. Biểu thức chính quy này sẽ kiểm tra một chuỗi để xem nó có tuân theo cú pháp địa chỉ IPv4 không.

5. Địa chỉ IPv6

(([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]))

Ngoài ra, bạn có thể muốn kiểm tra một cú pháp cho địa chỉ IPv6 mới hơn với đoạn mã regex nâng cao hơn này.

6. Dấu phân cách hàng ngàn

/\d{1,3}(?=(\d{3})+(?!\d))/g

Các hệ thống đánh số truyền thống yêu cầu một dấu phẩy, dấu chấm hoặc một số dấu khác mỗi chữ số thứ ba với số lớn hơn. Mã regex này hoạt động trên bất kỳ số nào và sẽ áp dụng bất kỳ dấu nào bạn chọn cho mỗi chữ số thứ ba tách thành hàng nghìn, hàng triệu, …

7. Chuẩn bị HTTP cho đường dẫn

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

Cho dù bạn đang làm việc với JavaScript, Ruby hay PHP, biểu thức chính quy này có thể chứng minh rất hữu ích. Nó sẽ kiểm tra bất kỳ chuỗi URL nào để xem nó có tiền tố HTTP/HTTPS hay không và nếu không, sẽ thêm vào đó.

8. Lấy tên miền từ URL

/https?:\/\/(?:[-\w]+\.)?([-\w]+)\.\w+(?:\.\w+)?\/?.*/i

Mỗi tên miền trang web chứa giao thức ban đầu (HTTP hoặc HTTPS) và thường là một tên miền phụ cộng với đường dẫn trang bổ sung. Bạn có thể sử dụng đoạn mã này để cắt bỏ tất cả những điều đó và chỉ trả lại tên miền mà không cần rườm rà.

9. Sắp xếp từ khóa theo số lượng từ

^[^\s]*$    //khớp với từ khóa chính xác 1 từ
^[^\s]*\s[^\s]*$    //khớp với từ khóa chính xác 2 từ
^[^\s]*\s[^\s]*    //khớp với từ khóa ít nhất 2 từ (2 trở lên)
^([^\s]*\s){2}[^\s]*$    //khớp với từ khóa chính xác 3 từ
^([^\s]*\s){4}[^\s]*$    //khớp với các từ khóa 5 từ trở lên (đuôi dài)

Người dùng Google Analytics và Webmaster Tools sẽ thực sự thích biểu thức chính quy này. Nó có thể sắp xếp và sắp xếp các từ khóa dựa trên số lượng từ được sử dụng trong tìm kiếm.

Điều này có thể cụ thể bằng số (nghĩa là chỉ có 5 từ) hoặc nó có thể khớp với một phạm vi từ (nghĩa là 2 từ trở lên). Khi được sử dụng để sắp xếp dữ liệu phân tích, đây là một biểu thức mạnh mẽ.

10. Tìm một chuỗi Base64 hợp lệ trong PHP

\?php[ \t]eval\(base64_decode\(\'(([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?){1}\'\)\)\;

Nếu bạn là một nhà phát triển PHP thì đến một lúc nào đó bạn có thể cần phân tích cú pháp tìm mã cho các đối tượng nhị phân được mã hóa Base64. Đoạn mã này có thể được áp dụng cho tất cả các mã PHP và sẽ kiểm tra mọi chuỗi Base64 hiện có.

Vì bài này khá dài, nên mình sẽ chia nó ra thanh nhiều phần, các bạn cùng dón chờ ở các phần sau nhé,…

30 đoạn mã Regex hữu ích cho các Web Developer [Phần 1]
Đánh giá bài viết

tienphamblog

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

All rights reserved Tien Pham Blog