var str = 'https://23.segment.com/?usename=David';
var pattern = /^(http|https|ftp|mailto):\/\/[0-9a-z\.]+([\/0-9a-z]|[-\_\?=])*([\.a-z]*)$/
console.log(pattern.exec(str));//null
为什么上面这段正则匹配不出来,求大神指点
var str = 'https://23.segment.com/?usename=David';
var pattern = /^(http|https|ftp|mailto):\/\/[0-9a-z\.]+([\/0-9a-z]|[-\_\?=])*([\.a-z]*)$/
console.log(pattern.exec(str));//null
为什么上面这段正则匹配不出来,求大神指点
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
推荐一个在线测试正则的网站
记得选择
JavaScript
。可以先删除后面的。一段段来分析。
一看字符串明显有个
David
。而正则里没有匹配大写字母的,当然匹配不出来。简单改变下,即可匹配。