2010-09-16 40 views
5

Trong ứng dụng asp.net của tôi, tôi cần xác thực văn bản để có liên kết trang web hợp lệ. Tôi muốn sử dụng trình xác nhận biểu thức chính quy cho điều đó. Bất kỳ ai có ý tưởng về cách xác thực regex người dùng weblink.Biểu thức Regex cho liên kết trang web hợp lệ

Trả lời

1
|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i 
+1

vẻ tốt đẹp, nhưng tôi tự hỏi, không mỗi trang web luôn luôn bắt đầu bằng http hoặc https? –

9

thử này -

^(?:ftp|http|https):\/\/(?:[\w\.\-\+]+:{0,1}[\w\.\-\+]*@)?(?:[a-z0-9\-\.]+)(?::[0-9]+)?(?:\/|\/(?:[\w#!:\.\?\+=&%@!\-\/\(\)]+)|\?(?:[\w#!:\.\?\+=&%@!\-\/\(\)]+))?$ 

Giải thích từng bước dưới đây -

^         # Start at the beginning of the text 
(?:ftp|http|https):\/\/    # Look for ftp, http, or https 
(?:         # Username:password combinations (optional)  
    [\w\.\-\+]+      # A username  
    :{0,1}        # an optional colon to separate the username and password  
    [\w\.\-\+]*@      # A password 
)? 
(?:[a-z0-9\-\.]+)     # The domain limiting it to just allowed characters 
(?::[0-9]+)?       # Server port number 
(?:         # The path (optional)  
    \/|        # a forward slash  
    \/(?:[\w#!:\.\?\+=&%@!\-\/\(\)]+)| # or a forward slash followed by a full path  
    \?(?:[\w#!:\.\?\+=&%@!\-\/\(\)]+) # or a question mark followed by key value pairs 
)?$ 
+0

Còn các địa chỉ như twitter.com hoặc facebook.com thì sao? Có vẻ như cái patter của bạn không khớp với nó. – S1awek

Các vấn đề liên quan