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

贪婪模式跟非贪婪模式

‘12345678’.replace(/\d{3,6}/g,'x')结果:X78

‘12345678’.replace(/\d{3,6}?/g,'x')结果:XX78

x的数量不一样,我想请问下是不是代表着匹配的次数

正在回答

2 回答

第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78两个,不符合至少3次的要求,所以不再进行匹配,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,最后省下78也不符号至少3次的要求,所以变成xx78。

要点,1全文匹配的话,会一直进行匹配,直到不符合要求

2.贪婪模式不是只去匹配最大的值而是尽可能的匹配所有符合要求的字符


0 回复 有任何疑惑可以回复我~

是的,第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,所以变成xx78

3 回复 有任何疑惑可以回复我~
#1

慕用0089443

厉害了 点赞点赞,全文匹配就是会无限次匹配知道没有为止啊
2017-03-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

贪婪模式跟非贪婪模式

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信