2013-09-02 92 views
17

Làm thế nào nó hoạt độngURL Validation REGEX - URL chỉ còn hiệu lực với http: //

Tôi có một lĩnh vực đầu vào để nhập URL của một trang web và tôi muốn kiểm tra xem nó và nếu URL là OK tôi sẽ cung cấp inputfield một lớp ("validated_ok") và loại bỏ một lớp ("cf_required") và nếu nó sai theo cách khác.

Vấn đề

Url chỉ nên được quyền nếu nó được viết với http:// nhưng thực sự nó cũng đúng với chỉ www (www.google.ch). Làm thế nào tôi phải thay đổi regex?

Javascript

// CHECK WEBSITE 
$(".cf_required[name='website']").focusout(function() { 
    var myVariable = $(this).val(); 
    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)){ 
     $(this).addClass("validated_ok").removeClass("cf_required") 
    } else { 
     $(this).removeClass("validated_ok").addClass("cf_required"); 
    } 
}); 
+3

Xem bài đăng này: http://stackoverflow.com/questions/833469/regular-expression-for-url – etoxin

Trả lời

26

Tháo |www\.?

^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$ 
+1

Giải thích xin vui lòng! –

1

chỉ cần thay đổi regex của bạn để làm http (s) cần

/^http(s)?:\/\/(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test('www.google.com') 
0

ngắn cách:

(\w*\W*)?\w*(\.(\w)+)+(\W\d+)?(\/\w*(\W*\w)*)* 

Bạn có thể kiểm tra nó trong trình soạn thảo regex tuyệt vời này: https://regex101.com/

+0

dường như không chính xác, hãy xem http://regexr.com/3fpd6 – Can

0
^http(s?):\/\/(www\.)?(((\w+(([\.\-]{1}([a-z]{2,})+)+)(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)|(\w+((\.([a-z]{2,})+)+)(\:[0-9]{1,5}(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)))|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(([0-9]|([1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]+)+)(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*)((\:[0-9]{1,5}(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)*))$ 
In this http is mandatory and it can take port and sub resources also. 
e.g http://example.com 
    https://example.qwerty.com/id 
    https://example.com:8989 
    http://example.qwerty.com:8989/id 
    https://10.1.1.1/id 
    https://10.1.1.1:9090/id