[英]How to validate my URL efficienty using JavaScript?
我的正则表达式成功验证了除http://www.google
之外的许多网址
这是我在JSFiddle中的URL验证器: http : //jsfiddle.net/z23nZ/2/
它正确验证了以下URL:
http://www.google.com
给出了True
www.google.com
给出了真实
http://www.rootsweb.ancestry.com/~mopoc/links.htm
给出了True
http:// www.
假的
......但不是这个:
http://www.google
给予True
在这种情况下返回true是不正确的。 我该如何验证该案例?
我认为你需要简化这一点。 那里有很多URL验证RegExes,但作为练习,我将完成构建一个的思考过程。
/((http|ftp)s?:\\/\\/)?
\\S+
[\\.\\/]\\S*/
现在把它们放在一起:
/(((http|ftp)s?:\/\/)|(\S+[\.\/]))\S*[^\s\.]*/
我猜你试图寻找www.google
是因为新TLD ...事实上,这样的网址可能看起来像google
,所以任何单词都可能是一个网址。 试图提出一个匹配有效URL的全能正则表达式是不可能的,所以你最好只使用像上面那样简单的东西。
编辑:我已经卡住了|
如果人们选择写这样的新URL,那么在协议部分和非空白 - 然后 - 点 - 或 - 斜杠部分之间匹配http://google
编辑2:查看评论以获得下一个改进。 它确保google.com
匹配, http://google
匹配,甚至google/
匹配,但不是a.
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.