课程
/前端开发
/JavaScript
/JavaScript正则表达式
‘12345678’.replace(/\d{3,6}/g,'x')结果:X78
‘12345678’.replace(/\d{3,6}?/g,'x')结果:XX78
x的数量不一样,我想请问下是不是代表着匹配的次数
2016-09-14
源自:JavaScript正则表达式 2-7
正在回答
第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78两个,不符合至少3次的要求,所以不再进行匹配,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,最后省下78也不符号至少3次的要求,所以变成xx78。
要点,1全文匹配的话,会一直进行匹配,直到不符合要求
2.贪婪模式不是只去匹配最大的值而是尽可能的匹配所有符合要求的字符
是的,第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,所以变成xx78
慕用0089443
举报
JavaScript正则表达式教程,理解之后,正则表达式比你想象的简单
2 回答正则中的贪婪模式,比如\d{3,6}跟\d{6}有什么区别吗?这不是多此一举吗。非贪婪模式也是
1 回答为什么再量词后面加上?会变成非贪婪模式
4 回答感觉非贪婪模式没什么用啊?比如\d{3,6}?直接使用\d{3}不就得了
1 回答非固定日期格式匹配
1 回答正则表达式公式