我已经在这个主题上发现了很多帖子,但没有帖子处理我的具体问题。
这是我使用的正则表达式(在本网站上找到):
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@:%_\+.~#?&//=]
'在我看来......
答案 0 :(得分:2)
你的正则表达式几乎可行。在字符串<div class="final_2">Hello!</div>
中,它与mydomain.tld/mypage/this'go(es{wro[ng
匹配。由于你没有在两端放置锚点,它确实匹配(bash)。
只需将其更改为:
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);
}