Javascript 为什么这个正则表达式不起作用?
我正在尝试使用一个类似于下面地址的正则表达式模式,但是我无法让测试方法返回true,我在这里做错了什么Javascript 为什么这个正则表达式不起作用?,javascript,regex,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); 字母和数字之间以
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);
字母和数字之间以及数字和字母之间没有空格,您希望在它们之间匹配空格。请记住,\b
是一个单词边界,它是一个零宽度断言,不消耗任何字符。因此,您需要将所有\b
替换为\s+
(1个或多个空格字符)。而且,[a-z}
是一个打字错误。它应该是[a-z]
使用
请看字母和数字之间没有单词边界。我认为您需要将所有的
\b
替换为\s+
。此外,[a-z}
很可能是[a-z]
。请看,在“tacoma”测试中,您有一个卷曲的括号,而不是括号
/\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}/