URL验证jquery使用regex

kupeojn6  于 2023-10-17  发布在  jQuery
关注(0)|答案(3)|浏览(125)

我想验证以下形式的URL:

  1. http://www.example.com
  2. http://example.com
  3. www.example.com
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);
}

1和2已正确验证。但是3显示无效的URL。

aor9mmx1

aor9mmx11#

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

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://”是可选的,你必须把它放在括号里,并添加一个问号。

u91tlkcl

u91tlkcl2#

试试这个,对我很有效。

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

cclgggtu

cclgggtu3#

我们需要验证n个URL验证的场景。如果你对你给定的模式很挑剔,那么上面的正则表达式从其他答案看起来不错。即:

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


如果你想处理所有的URL验证场景,请refer In search of the perfect URL validation regex

相关问题