在网上看到一个url正则表达式: (https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|] 这个表达式必须是http:开头,如果不要http:也可以,怎么修改下?如下//www.baidu.com
?表示前面的内容匹配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+&@#/%=~_|]/
?
表示前面的内容匹配0
或者1
次,在(https?|ftp|file):
后面添加?
,表示前面的内容出现0
次或者1
次都可以,也就是说url
中可以有协议,也可以没有协议:不知道你是不是在js里面使用,如果是在js中,这两个
//
是需要转义的: