我还没有找到适合我需要的东西,我需要一个 varify host:port 的正则表达式。例如:localhost:52247 //trueweb.mycompany.com //trueweb.mycompany.com:52247 //true192.168.108.76:8383/ //true192.168.108.76/ //true并应为以下内容返回 false;localhost:9999999 //false because port is not valid'' //false becuse string is emptyweb.mycoעעעעעmpany.com:52247 //false because it contains hebrew characters192.168.377.76:8383/ //false because ip address not valid
1 回答

qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
我不会在这里编写自己的正则表达式,而是使用URL()
构造函数——如果提供的参数不被视为有效的 URL,它将抛出 TypeError 异常。
您的输入值只需以协议为前缀,首先使它们成为有效的非相对URL - 所以让我们放在前面http://
,然后看看构造函数是否抛出异常:
var urls = 'localhost:52247,web.mycompany.com,web.mycompany.com:52247,192.168.108.76:8383/,192.168.108.76/,localhost:9999999,,web.mycoעעעעעmpany.com:52247,192.168.377.76:8383/'.split(',');
urls.forEach(function(e){
try {
new URL('http://'+e);
console.log(e + ": true");
}
catch(x) {
console.log(e + ": false");
}
})
- 1 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消