为了账号安全,请及时绑定邮箱和手机立即绑定

什么是匹配URL的好正则表达式?

什么是匹配URL的好正则表达式?

什么是匹配URL的好正则表达式?目前,我有一个输入框,它将检测URL并解析数据。所以现在,我用的是:var urlR = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)            (?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;var url= content.match(urlR);问题是,当我输入一个URL时www.google.com它不起作用。当我进来的时候http://www.google.com它起作用了。我的正则表达式不是很流利。有谁可以帮我?
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

这些是你要找的机器人。这是从valdator.js这是你真正应该用来做这件事的库。但如果你想自食其力,我又是谁来阻止你呢?如果你想要纯正则表达式,那么你只需取出长度检查。我认为测试URL的长度是个好主意,不过如果您真的想确定是否符合规范的话。

 function isURL(str) {
     var urlRegex = '^(?!mailto:)(?:(?:http|https|ftp)://)
     (?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}
     (?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)
     (?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)
     (?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$';
     var url = new RegExp(urlRegex, 'i');
     return str.length < 2083 && url.test(str);}


查看完整回答
反对 回复 2019-06-10
  • 3 回答
  • 0 关注
  • 1464 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信