量词表示之前的元素重复出现的次数,比如中国的邮政编码是由6位数字构成的字符串,即\d\d\d\d\d\d,通过量词可以简写成\d{6}。

一般形式

量词 说明
{m} 表示之前的元素出现m次
{m,n} 表示之前的元素出现的次数在m到n之间,m是下限,n是上线
{m,} 之前的元素最少出现m次,出现次数无上限

注意:量词中的逗号后面不能添加空格

常用量词

常用量词 {m,n}等价形式 说明
* {0,} 可能出现,也可能不出现,出现次数没有上限
+ {1,} 至少出现1次,出现次数没有上限
{0,1} 至多出现一次,也可能不出现

匹配优先量词和忽略优先量词

  • 上面介绍的都是匹配优先量词,匹配优先量词与忽略优先量词一一对应,在匹配优先量词的后面加一个问号?就变成了忽略优先量词,如,匹配优先量词{m}对应的忽略优先量词是{m}?,匹配优先量词对应的忽略优先量词是
  • 两者的区别是匹配优先量词就是在是否要匹配的时候(如点号.、[\d\D]、[\w\W]、[\s\S]),优先选择匹配,并记下这个状态,以备将来‘反悔’(回溯);而忽略优先量词会优先选择忽略,如果后面的元素不能匹配,再尝试匹配。
    1. /a.*a/.exec('a111a222a333') // a111a222a
    2. /a.*?a/.exec('a111a222a333') // a111a