<script type="text/javascript">
var str="https://www.baidu.com/s?ie=utf";
document.write(str.match("www.baidu.com/s?")) //www.baidu.com/s
document.write(str.match("www.baidu.com/s?ie=utf")) //null
</script>
为什么匹配到?之后就无法匹配了??
<script type="text/javascript">
var str="https://www.baidu.com/s?ie=utf";
document.write(str.match("www.baidu.com/s?")) //www.baidu.com/s
document.write(str.match("www.baidu.com/s?ie=utf")) //null
</script>
为什么匹配到?之后就无法匹配了??
问号需要转义啊,因为你调用str.match(regexp)这个方法时,如果你传入的是非正则表达式,它会隐式地使用 new RegExp(obj) 将其转换为正则表达式对象。问号?在正则中表示匹配0次或一次,如果你想匹配?,需要\?去转义,否则它会把?当作匹配0次或一次,所以你第二次的时候是输出null,因为它并没有把?当作?,而是当作匹配0次或1次。
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答857 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
你需要转义。正则不建议用字符串构成,建议这么写: