Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式:匹配地址(街道的编号和名称)_Javascript_Regex - Fatal编程技术网

Javascript正则表达式:匹配地址(街道的编号和名称)

Javascript正则表达式:匹配地址(街道的编号和名称),javascript,regex,Javascript,Regex,我想在Javascript中使用正则表达式来匹配一个字符串,该字符串包含第一位的数字,然后是街道名称,例如: 圣路易斯54街 我尝试的正则表达式是这样的:var res=/[0-9]\s[A-Z]\s[A-Z-]/.test(“8街圣路易斯”) 但它返回错误 有什么想法吗?问题: [A-Z]:它将只匹配一个字母表,因此请使用*或+ 您的示例大小写包括小写字母,但您的正则表达式只查找大写字母,因此请使用[a-zA-Z] 所以使用^\d+\s[a-zA-Z]+(\s[a-zA-Z-]*)?$ ^\d

我想在Javascript中使用正则表达式来匹配一个字符串,该字符串包含第一位的数字,然后是街道名称,例如:

圣路易斯54街

我尝试的正则表达式是这样的:
var res=/[0-9]\s[A-Z]\s[A-Z-]/.test(“8街圣路易斯”)

但它返回错误

有什么想法吗?

问题:

[A-Z]
:它将只匹配一个字母表,因此请使用
*
+

您的示例大小写包括小写字母,但您的正则表达式只查找大写字母,因此请使用
[a-zA-Z]

所以使用
^\d+\s[a-zA-Z]+(\s[a-zA-Z-]*)?$

^\d+
:以一个或多个数字开头

\s[a-zA-Z]+
:空格然后是一个或多个字母

(\s[a-zA-Z-]*)?
零或一个、空格和零或多个字母表的匹配,以及
-
$
字符串的平均结束匹配

console.log(/^\d+\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8 street Saint Louis'));
console.log(/^\d++\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8街');
console.log(/^\d++\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8748 street Saint Louis'));
//-----------------------------------------------------------

console.log(/^\d{1,3}\s[a-zA-Z]+(\s[a-zA-Z-]*)?$/.test('8748 street Saint Louis')你忘了应用你的正则表达式也不区分大小写-添加
i
flagOk谢谢,我以这个
/[0-9]{1,3}\s[A-Z]*\s[A-Z-]*/i.test(“圣路易斯街8748号”)7
@ThisIsMe开始匹配的,因为
[0-9]{1,3}
将从
748
开始匹配,所以使用开始锚定
^[0-9]
,我不知道你仍然有疑问,所以如果你有疑问,请尝试将你的疑问添加到post中,以澄清你的评论“和
-
结尾”在图案中间的连字符表示范围,<代码> A z < /代码>是“A通Z”。在结尾,这意味着连字符本身应该是匹配字符的一部分。@JamesCurran由于更加清晰,我想在结尾说:)