关于JavaScript正则表达式的量词问题

关于JavaScript正则表达式的量词问题

问题描述:

如图所示:

第一行中,当我想要正则表达式中出现1个h、3个ab、1个c时,如果字符串中间多打一个ab(变成4个ab),则汇报false;

但是,当我想要正则表达式中出现3个ab、1个c时,如果字符串中先打出4个ab,再打c时,却是true;

请问这是为什么?

因为你没有用^和$来匹配字符串开头和结尾。
这样只要字符串中有一部分内容能满足正则表达式的匹配就是true
例如你的/(ab){3}c/匹配的是字符串中加粗的部分
ababababc
 

要让整个字符串满足正则表达式的匹配需要用^和$来匹配字符串开头和结尾
/^(ab){3}c$/
 

多谢多谢!