2013-05-14 44 views
5

Tôi đang cố gắng xác thực URL trong jQuery regular expression bằng cách sử dụng mã bên dưới. Nó đang làm việc tốt với http://wwwhttps://wwwXác thực Jquery để xác thực URL

var myVariable = "http://www.example.com/2013/05/test-page-url-512-518.html"; 

if(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(myVariable)){ 
    alert("valid url"); 
} else { 
    alert("invalid url"); 
} 

Chỉnh sửa: -

Trên công việc mã một cách hoàn hảo để xác nhận địa chỉ URL. thời điểm đó yêu cầu của tôi chỉ là để xác nhận http://wwwhttps://www

+0

http://stackoverflow.com/questions/2723140/validating-url-with-jquery-without-the-validate-plugin –

+1

các tên miền phụ là tên miền cấp thứ ba được sử dụng để tổ chức nội dung trang web của bạn. ! http: // wsww. là một url hợp lệ như https: //mail.google.com ... – Kld

+0

@ Khaled: cảm ơn. Bây giờ tôi đã nhận. Nó có nghĩa là url hợp lệ ... – Roopendra

Trả lời

1

mô hình của bạn được định nghĩa là

^(http:\/\/|someting else

do đó, bất kỳ url nào bắt đầu bằng "http: //" sẽ là validat ed.

+0

nó hoạt động tốt cho 'http: //'. – Roopendra

+1

yeah tôi có nghĩa là bất kỳ url nào là "http: // [sth]. [Sth]. [Sth]" (sth for something) sẽ hoạt động tốt –

0

thử này --->

var myVariable = "http://www.Test.com/"; 
if(/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(myVariable)) { 
    alert("valid url"); 
} else { 
    alert("invalid url"); 
} 
8

Kiểm tra này - http://docs.jquery.com/Plugins/Validation/Methods/url

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     url: true 
    } 
    } 
}); 
+1

Điều này tốt hơn câu trả lời được chấp nhận. Không cần phải viết và xác minh chính regex + điều này không chỉ kiểm tra http: // ở đầu URL. – Ridz

2

Bạn có thể thay đổi Regex của bạn, thực sự có một sự lặp lại của mục tức là http:\/\/|https:\/\/|www\.

Mã này sẽ làm việc ra cho bạn:

var myVariable = "http://www.example.com/2013/05/test-page-url-512-518.html"; 

if(/^(http:\/\/www\.|https:\/\/www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(myVariable)){ 
    alert("valid url"); 
} else { 
    alert("invalid url"); 
} 
1

Bạn muốn xác URL của bạn:

Hãy vượt qua URL trong hàm này thì điều này sẽ cho bạn đúng HOẶC sai.

Chức năng:

<script> 
function isUrl(s) { 
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ 
    return regexp.test(s); 
} 

isUrl(yourURL); 
</script> 
Các vấn đề liên quan