为什么这个正则表达式不起作用?

时间:2017-11-14 18:34:59

标签: javascript regex

我正在尝试使用类似于下面的地址的正则表达式模式,但我不能让测试方法返回true,我在这里做错了什么?

       let reg=/[0-9]{3}\b[a-z]{1}\b\d{2}[a-z]{2}\b[a-z]{2}\b[a-z}{6}\b[a-z]{10}\b[0-9]{5}/;

       let fakeAddress="925 s 10th st tacoma washington 98405";
        reg.test(fakeAddress);

1 个答案:

答案 0 :(得分:1)

字母和数字之间以及数字和字母之间没有word boundaries,您希望匹配它们之间的空格。请记住,\b,一个字边界,是一个零宽度断言,不消耗任何字符。因此,您需要将所有\b替换为\s+(1个或多个空白字符)。此外,[a-z}是一个错字。它应该是[a-z]

使用

/\d{3}\s+[a-z]\s+\d{2}[a-z]{2}\s+[a-z]{2}\s+[a-z]{6}\s+[a-z]{10}\s+[0-9]{5}/

请参阅regex demo