JavaScript正则表达式匹配需求:仅匹配以144开头的字符串
解决你的正则匹配问题
嘿,我来帮你搞定这个正则的坑!你的问题出在对正则里*的理解上——你写的144*,这里的*是作用在最后一个4上的,意思是匹配14后面跟着0个或多个4。那14这个字符串刚好就是14加0个4,自然会被匹配到,这就不符合你的预期了。
根据你的需求:匹配前三个字符是144、后续可以包含任意内容的字符串,正确的正则应该用^144,其中:
^表示字符串的开头,确保我们从字符串第一个字符开始匹配144就是你要的前三个固定字符
如果想要明确表示后面可以跟任意内容(包括什么都没有),也可以写成^144.*,这里的.*表示匹配任意字符(除了换行)0次或多次,不过其实^144已经能满足你的需求了——只要字符串开头是144,不管后面有没有内容都会被匹配。
修改后的测试代码如下:
var zip = '14'; // 不希望匹配的内容 var search = new RegExp('^144', 'g'); if (zip.match(search)) { console.log('匹配成功'); } else { console.log('匹配失败'); // 这里会执行,符合你的预期 }
再给你几个测试用例验证:
'144'→ 匹配成功(前三个是144,后续无内容)'14450'→ 匹配成功(符合你的示例)'14445'→ 匹配成功(符合你的示例)'14'→ 匹配失败(不符合预期的情况被排除)'x144'→ 匹配失败(开头不是144)
内容的提问来源于stack exchange,提问作者Chris Muench
相关产品推荐
相关产品推荐

