url正则表达式

在网上看到一个url正则表达式:

(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

这个表达式必须是http:开头
如果不要http:也可以,怎么修改下?如下
//www.baidu.com

阅读 6.6k
2 个回答

?表示前面的内容匹配0或者1次,在(https?|ftp|file):后面添加?,表示前面的内容出现0次或者1次都可以,也就是说url中可以有协议,也可以没有协议:

(?:(https?|ftp|file):)?//[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

不知道你是不是在js里面使用,如果是在js中,这两个//是需要转义的:

let reg = /(?:(https?|ftp|file):)?\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/
# | 是或者符号再加一个http就行了
(https?|http|ftp|file)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进