x*将前面的项“x”匹配 0 次或更多次。
let reg = /bo*/g;
let str = "A ghost booooed";
str.match(reg); // ['boooo']
str = "A bird warbled";
str.match(reg); // ['b', 'b']
str = "A goat grunted";
str.match(reg); // null
x+将前一项“x”匹配 1 次或更多次,等价于{1,}。
let reg = /bo+/g;
let str = "A ghost booooed";
str.match(reg); // ['boooo']
str = "A bird warbled";
str.match(reg); // null
str = "A goat grunted";
str.match(reg); // null
reg = /a+/g;
str = "caaaaaaandy";
str.match(reg); // ['aaaaaaa']
x?将前面的项“x”匹配 0 或 1 次。
如果在任何量词*、+、?或{}之后使用?,则使量词是非贪婪的 (匹配最小次数),而不是默认的贪婪的 (匹配最大次数)。
let reg = /bo?/g;
let str = "A ghost booooed";
str.match(reg); // ['bo']
str = "A bird warbled";
str.match(reg); // ['b', 'b']
str = "A goat grunted";
str.match(reg); // null
reg = /bo??/g;
str = "A ghost booooed";
str.match(reg); // ['b']
x{n}其中“n”是一个正整数,与前一项“x”的 n 次匹配。
let reg = /a{2}/g;
let str = "candy";
str.match(reg); // null
str = "caandy";
str.match(reg); // ['aa']
str = "caaandy";
str.match(reg); // ['aa']
x{n,}其中,“n”是一个正整数,与前一项“x”至少匹配“n”次。
let reg = /a{2,}/g;
let str = "caaandy";
str.match(reg); // ['aaa']
x{n,m}其中n为0或正整数,m为正整数,且m > n,前一项x至少匹配n次且最多匹配m次。
let reg = /a{2,4}/g;
let str = "caaaaaaaaaaandy";
str.match(reg); // ['aaaa', 'aaaa', 'aaa']
x*? x+? x?? x{n}? x{n,}? x{n,m}?默认情况下,像*和+这样的量词是“贪婪的”,这意味着它们试图匹配尽可能多的字符串。量词后面的字符?使量词“非贪婪”:这意味着一旦找到匹配,它就会停止。
let reg = /a{2,4}?/g;
let str = "caaaaaaaaaaandy";
str.match(reg); // ['aa', 'aa', 'aa', 'aa', 'aa']
如果你感觉文章不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L;~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!
