使用正则表达式验证jquery的url

时间:2014-07-23 10:38:28

标签: jquery regex validation url

我想验证URL字段,如下所示 -

  1. http://www.example.com
  2. http://example.com
  3. www.example.com
  4. 前两个是使用以下正则表达式进行验证 -

    function is_valid_url(url) {
        return /^http(s)?:\/\/(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(url);
    }
    

    但是,当我将方案3放在文本框中时,它显示我无效的URL。

    任何帮助都将受到高度赞赏。

    先谢谢

    阿莫德

3 个答案:

答案 0 :(得分:14)

这是您的用例的正确正则表达式:

function is_valid_url(url) {
    return /^(http(s)?:\/\/)?(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(url);
}

如果" http://"是可选的,您必须将其放在括号中并添加问号。

答案 1 :(得分:4)

试试这个,它对我有用。

var url = $("#<%= txtUrl.ClientID %>").val();
var pattern = /^(http|https)?:\/\/[a-zA-Z0-9-\.]+\.[a-z]{2,4}/;

args.IsValid = pattern.test(url);

http://www.tricksofit.com/2013/12/regular-expression-with-jquery-validation#highlighter_290011

答案 2 :(得分:1)

我们需要验证n个场景以进行URL验证。如果你对你的给定模式有所了解,那么从其他答案的regex表达式看起来很好。  那就是:

    function is_valid_url(url) 
{
   return /^(http(s)?:\/\/)?(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(url);
}

或者

如果您想要处理所有网址验证方案,请refer In search of the perfect URL validation regex