URL Validation REGEX - URL 只对 http:// 有效

Posted

技术标签:

【中文标题】URL Validation REGEX - URL 只对 http:// 有效【英文标题】:URL Validation REGEX - URL just valid with http:// 【发布时间】:2013-09-05 06:27:32 【问题描述】:

工作原理

我有一个输入字段来输入网站的 URL,我想检查它,如果 URL 正常,我会给输入字段一个类(“validated_ok”)并删除一个类(“cf_required”),如果它反过来就错了。

问题

如果用http:// 编写的url 应该是正确的,但实际上它只用www (www.google.ch) 也是正确的。我必须如何更改正则表达式?

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");
    
);

【问题讨论】:

查看此帖:***.com/questions/833469/regular-expression-for-url 【参考方案1】:
^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

【讨论】:

【参考方案2】:

更短的方式:

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

您可以在这个出色的正则表达式编辑器中对其进行测试:https://regex101.com/

【讨论】:

【参考方案3】:

这将起作用:

(?<Protocol>\w+):\/\/(?<Domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*

希望对你有帮助

【讨论】:

【参考方案4】:

只需更改您的正则表达式以使 http(s) 成为必需

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

【讨论】:

【参考方案5】:

删除|www\.

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

【讨论】:

以上是关于URL Validation REGEX - URL 只对 http:// 有效的主要内容,如果未能解决你的问题,请参考以下文章

RE validation in Java EE(java.util.regex.Pattern)

RE validation in Java EE(java.util.regex.Pattern)

Python正则表示式的几种匹配用法

UTV - URL Tag Validation

使用 Jquery Validation 验证印度车辆编号的车辆编号

常见python正则用法实例