Cách xác thực URL bằng biểu thức chính quy

Việc lập trình đã giúp bạn dễ dàng xử lý dữ liệu văn bản có cấu trúc và phi cấu trúc. Các công cụ như biểu thức chính quy và thư viện bên ngoài làm cho các tác vụ này dễ dàng hơn rất nhiều.


Bạn có thể sử dụng hầu hết các ngôn ngữ, bao gồm cả Python và JavaScript, để xác thực URL bằng biểu thức chính quy. Regex ví dụ này không hoàn hảo, nhưng bạn có thể sử dụng nó để kiểm tra URL cho các trường hợp sử dụng đơn giản.


Biểu thức chính quy để xác thực URL

Regex để xác thực URL được trình bày trong bài viết này không hoàn hảo. Có thể có nhiều ví dụ về các URL hợp lệ có thể không xác thực được regex này. Điều này bao gồm các URL liên quan đến địa chỉ IP, các ký tự không phải ASCII và các giao thức như FTP. Regex sau đây chỉ xác thực các URL phổ biến nhất.

Regex sẽ coi một URL là hợp lệ nếu nó đáp ứng các điều kiện sau:

  1. Chuỗi phải bắt đầu bằng http hoặc https theo dõi bởi : //.
  2. Độ dài kết hợp của miền phụ và miền phải từ 2 đến 256. Nó chỉ được chứa các ký tự chữ và số và / hoặc các ký tự đặc biệt.
  3. TLD (Tên miền cấp cao nhất) chỉ nên chứa các ký tự chữ cái và phải dài từ hai đến sáu ký tự.
  4. Phần cuối của chuỗi URL có thể chứa các ký tự chữ và số và / hoặc các ký tự đặc biệt. Và nó có thể lặp lại không hoặc nhiều lần.

Bạn có thể xác thực URL trong JavaScript bằng cách sử dụng biểu thức chính quy sau:

^ (http (s):  /  /.)[-a-zA-Z0-9@:%._+~

Similarly, you can use the following regex to validate a URL in Python:

^((http|https):

Where:

  • (http|https)://) makes sure the string starts with either http or https followed by ://.
  • [-a-zA-Z0-9@:%._\+~#?&//=] chỉ ra các ký tự chữ và số và / hoặc các ký tự đặc biệt. Phiên bản đầu tiên của tập hợp này đại diện cho tập ký tự cho phép trong miền con và phần miền. Trong khi phiên bản thứ hai của tập hợp này đại diện cho tập hợp các ký tự để cho phép trong chuỗi truy vấn hoặc phần thư mục con.
  • {2,256} đại diện cho chỉ báo số lần xuất hiện từ 2 đến 256 (cả hai). Điều này chỉ ra rằng độ dài kết hợp của miền phụ và miền phải từ hai đến 256.
  • . đại diện cho ký tự dấu chấm.
  • [a-z]{2,6} có nghĩa là bất kỳ chữ cái viết thường nào từ a đến z có độ dài từ hai đến sáu. Điều này đại diện cho tập hợp các ký tự để cho phép trong phần miền cấp cao nhất.
  • b đại diện cho ranh giới của một từ, tức là phần đầu của một từ hoặc phần cuối của một từ.
  • * là một toán tử lặp cho biết không hoặc nhiều bản sao của chuỗi truy vấn, tham số hoặc thư mục con.
  • ^$ chỉ ra điểm bắt đầu và kết thúc của chuỗi tương ứng.

Nếu bạn không thoải mái với biểu thức trên, trước tiên hãy xem hướng dẫn dành cho người mới bắt đầu về biểu thức chính quy. Biểu thức chính quy cần một thời gian để làm quen. Khám phá một số ví dụ như xác thực chi tiết tài khoản người dùng bằng biểu thức chính quy sẽ hữu ích.

Regex ở trên đáp ứng các loại URL sau:

  • https://ift.tt/o1Tmpyk
  • https://ift.tt/ULXj8pO
  • https://ift.tt/I2GQpRt
  • https://ift.tt/eQ28wgC
  • https://ift.tt/HKC4T2x
  • https://ift.tt/FK5RMP9
  • https://mail.google.com

Sử dụng Cụm từ Thông dụng trong Chương trình

Mã được sử dụng trong dự án này có sẵn trong kho lưu trữ GitHub và miễn phí cho bạn sử dụng theo giấy phép MIT.

Đây là một cách tiếp cận Python để xác thực URL:

import re
def validateURL(url):
regex = "^((http|https):
r = re.compile(regex)


if (re.search(r, url)):
print("Valid")
else:
print("Not Valid")


url1 = "https://www.linkedin.com/"
validateURL(url1)
url2 = "http://apple"
validateURL(url2)
url3 = "iywegfuykegf"
validateURL(url3)
url4 = "https://w"
validateURL(url4)

Mã này sử dụng Python’s re.compile () để biên dịch mẫu biểu thức chính quy. Phương thức này chấp nhận mẫu regex dưới dạng tham số chuỗi và trả về một đối tượng mẫu regex. Đối tượng mẫu regex này còn được sử dụng để tìm kiếm các lần xuất hiện của mẫu regex bên trong chuỗi mục tiêu bằng cách sử dụng nghiên cứu() phương pháp.

Nếu nó tìm thấy ít nhất một kết quả phù hợp, nghiên cứu() phương thức trả về kết quả phù hợp đầu tiên. Lưu ý rằng nếu bạn muốn tìm kiếm tất cả các kết quả phù hợp với mẫu từ chuỗi đích, bạn cần sử dụng re.findall () phương pháp.

Chạy đoạn mã trên sẽ xác nhận rằng URL đầu tiên là hợp lệ nhưng phần còn lại thì không.

Tương tự, bạn có thể xác thực URL trong JavaScript bằng đoạn mã sau:

function validateURL(url) {
if(/^(http(s)://.)[-a-zA-Z0-9@:%._+~
console.log('Valid');
} else {
console.log('Not Valid');
}
}
validateURL("https://www.linkedin.com/");
validateURL("http://apple");
validateURL("iywegfuykegf");
validateURL("https://w");

Một lần nữa, việc chạy mã này sẽ xác nhận rằng URL đầu tiên hợp lệ và phần còn lại của chúng không hợp lệ. Nó sử dụng JavaScript của cuộc thi đấu() để khớp chuỗi mục tiêu với một mẫu biểu thức chính quy.

Xác thực dữ liệu quan trọng bằng biểu thức chính quy

Bạn có thể sử dụng biểu thức chính quy để tìm kiếm, đối sánh hoặc phân tích cú pháp văn bản. Chúng cũng được sử dụng để xử lý ngôn ngữ tự nhiên, đối sánh mẫu và phân tích từ vựng.

Bạn có thể sử dụng công cụ mạnh mẽ này để xác thực các loại dữ liệu quan trọng như số thẻ tín dụng, chi tiết tài khoản người dùng, địa chỉ IP, v.v.

Previous Post
Next Post

post written by: