浅学辄止
2016-09-14 10:53
‘12345678’.replace(/\d{3,6}/g,'x')结果:X78
‘12345678’.replace(/\d{3,6}?/g,'x')结果:XX78
x的数量不一样,我想请问下是不是代表着匹配的次数
第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78两个,不符合至少3次的要求,所以不再进行匹配,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,最后省下78也不符号至少3次的要求,所以变成xx78。
要点,1全文匹配的话,会一直进行匹配,直到不符合要求
2.贪婪模式不是只去匹配最大的值而是尽可能的匹配所有符合要求的字符
是的,第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,所以变成xx78
JavaScript正则表达式
96813 学习 · 119 问题
相似问题