使用正则表达式验证网站url
Javascript: Website url validation with regex
我正在努力在javascript中创建一个正则表达式来验证网站url。我在stackoverflow社区搜索了一下,但没有找到需要完成的有用的东西。
我的regex直到现在:/(https ?: ' '/) ? (www ')。? [a-zA-Z0-9] + ' [a-zA-Z] {2,}/g。
但它似乎失败了,并通过了两个w的url验证,如www .test.com
应该通过regex的测试:
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
不应该通过regex的测试:
w.test.com
ww.test.com
www.test
test
ww.test.
.test
.test.com
.test.co.ul
.test.
有什么建议或想法吗? 即使这个答案对于这个问题来说有点太多了,但它说明了问题:即使有可能创建一个regexp来检查url,解析url并"创建一个真正的对象"要简单得多,也更健壮,使用它可以将整个测试分解为许多较小的测试。
所以可能现代浏览器内置的URL
构造函数可以在这里帮助你(LINK 1, LINK 2)。
测试url的一种方法可能是这样的:
function testURL (urlstring) {
var errors = [];
try {
var url = new URL(urlstring);
if (!/https/.test(url.protocol)) {
errors.push('wrong protocol');
}
//more tests here
} catch(err) {
//something went really wrong
//log the error here
} finally {
return errors;
}
}
if (testURL('mr.bean').length == 0) { runSomething(); }
这是一个非官方的,但对大多数事情都有效的一个解释。对于大多数情况,这应该足够好了。
(https?:'/'/)?['w'-~]+('.['w'-~]+)+('/['w'-~]*)*(#['w'-]*)?('?.*)?
-
(https?:'/'/)?
-从http://
或https://
开始 -
['w'-~]+('.['w'-~]+)+
后跟域名['w'-~]
和至少一个扩展名('.['w'-~])+
-
['w'-~]
==[a-zA-Z0-9_'-~]
- 多个扩展意味着
test.go.place.com
-
-
('/['w'-~]*)*
然后尽可能多的子目录- 为了方便地使
test.com/
通过,斜杠不强制以下字符。这可以像这样被滥用:test.com/la////la
.
- 为了方便地使
-
(#['w'-]*)?
后面可能跟着一个元素id -
('?.*)?
后面可能是url参数,这(为了简单起见)几乎可以是任何
有很多的边缘情况,这将打破,或者它应该,但它没有。但是,对于大多数情况下,人们没有做任何奇怪的事情,这应该是有效的。
/((http|https)':'/'/)?[a-zA-Z0-9'.'/'?':@'-_=#]+'.([a-zA-Z0-9'&'.'/'?':@'-_=#])*/g
相关文章:
- 为什么正则表达式不能正确验证网站URL
- 使用JS获取网站URL不适用于https
- 用于验证网站 URL 的正则表达式
- 使用 JavaScript 的不同类型的网站 URL 的正则表达式
- 在WordPress中,获取样式表中的网站URL
- 服务器的IP地址'的网站url
- 如何将网站url作为链接发送到多个Facebook好友
- 是否有更改网站url参数的方法
- 如何在HTML/JavaScript中构建基于用户输入(文本框/下拉列表)的网站URL
- RegExp用于验证不与数组一起工作的网站URL
- 网站url的Asp.net MVC 2客户端验证
- 使用正则表达式验证网站url
- 我正在使用jsoup从网站url拉图像,但我希望页面加载第一是无论如何要做到这一点
- 将网站URL表单重定向到特定页面
- 如何在我们的网站url显示facebook用户名
- 未知字符串'%3Ca%20目标='在我的网站URL中
- 如何使用HTML和PHP在网站URL中创建动态路径
- tvOS加载网站URL
- 如何从网站url获取图像并将所有图像存储在PC中的文件夹中
- 网站url的正则表达式