javascript RegExp验证url表达式

时间:2016-01-22 13:47:05

标签: javascript regex validation url

我已经在这个主题上发现了很多帖子,但没有帖子处理我的具体问题。

这是我使用的正则表达式(在本网站上找到):

function validateUrl(value){
        return /[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}([-a-zA-Z0-9@:%_\+.~#?&//=]*)/i.test(value);
}

这会验证我的网址是否正确,直至达到以下某点:

  

mydomain.tld /我的空间/这'去(ES {WRO〔毫微克

我的函数返回true,即使有不允许的字符,例如:
'"()或{{1} }或[]{

我不明白为什么允许这样做。我有这个:}
应该返回' [-a-zA-Z0-9@:%_\+.~#?&//=]'在我看来......

2 个答案:

答案 0 :(得分:2)

你的正则表达式几乎可行。在字符串<div class="final_2">Hello!</div>中,它与mydomain.tld/mypage/this'go(es{wro[ng匹配。由于你没有在两端放置锚点,它确实匹配()。

只需将其更改为:

mydomain.tld/mypage/this

参见 partially

答案 1 :(得分:0)

请试试这个:

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