我在下面的正则表达式中添加了以检查它是否是url:
function checkurl(url){
var regex = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
if(!$.trim(url).match(regex)){
//alert("Not Valid Url");
alert('Not Valid Url');
return false;
}
这适用于大多数网址,但对于以下网址,它显示错误:
答案 0 :(得分:2)
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([?=\/\w \.-]*)\/?$
^^ ^^
试试这个。看看demo.Added ?=
到字符类。还删除了*)*
,这会导致灾难性的回溯。
答案 1 :(得分:1)
您需要在上一个字符类中添加更多字符以支持查询字符串,即?
,&
和=
:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([?=&\/\w \.-]*)*\/?$
答案 2 :(得分:1)
它不适用于该网址,因为它有一个查询字符串(?v=wEQi87xSIgU
)。
在$
:
(\?[^#]*)?(#.*)?
这将匹配查询字符串和哈希值。