【发布时间】:2017-01-06 06:55:30
【问题描述】:
我正在努力在 javascript 中创建一个正则表达式来验证网站 url。我在 stackoverflow 社区中搜索了一下,没有发现需要完成的内容。
到目前为止我的正则表达式:/(https?:\/\/)?(www\.)?[a-zA-Z0-9]+\.[a-zA-Z]{2,}/g
但它似乎失败并通过了带有两个 w 的 url 的验证,例如 ww.test.com
应该通过正则表达式的测试:
http://www.test.com
https://www.test.com
www.test.com
www.test.co.uk
www.t.com
test.com
test.fr
test.co.uk
不应该通过正则表达式的测试:
w.test.com
ww.test.com
www.test
test
ww.test.
.test
.test.com
.test.co.ul
.test.
有什么建议或想法吗?
【问题讨论】:
-
那么
Mr.Bean也是一个有效的URL? -
"ww.test.com"是一个有效的网站地址 - 为什么不是呢?www.test-site.com也是如此,但您的正则表达式不允许使用连字符。 -
@Panagiotis 为什么不呢?如果以这种方式访问某些网站怎么办
someurl.user.com您将 URL 与域名混淆 -
@Panagiotis 使用正则表达式是不可能的。 URL 可能有效但不存在,因此您需要在有效 URL 上解析 URL。
-
@Panagiotis 不确定这是否是一个选项(不明白为什么不),但你可以设置
<input type="url">如果可能的话,看看这个问题stackoverflow.com/questions/13820477/…
标签: javascript regex url