JavaScript 正则表达式 : match an adress (number + name of the street)

标签 javascript regex

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

圣路易斯街 54 号

我尝试的正则表达式是这样的: var res =/[0-9]\s[A-Z]\s[A-Z-]/.test("8 street Saint-Louis");

但它返回 false...

有什么想法吗?

最佳答案

问题:

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

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

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

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

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

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

Demo

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 street')); 
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')); 

关于JavaScript 正则表达式 : match an adress (number + name of the street),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289086/

相关文章:

javascript - 正确卸载 React 组件

javascript - 在node.js中合并具有不同格式的多个对象

javascript - 为什么这段代码看起来是在 return 语句之后执行的?

javascript - 检查数组中的字典对象是否包含javascript中的特定值

java - 为什么这个正则表达式需要很长时间才能执行?

javascript - 在 Angular2 上使用正则表达式制作管道

javascript - 如何检测 Skype For Business 点击通话是否在 IE11 兼容模式下启用?

Java 正则表达式 替换字符串时出现问题

regex - 使用 FFMpeg 确定视频类型,然后转换?

python - 将地址拆分为三个不同系列的正则表达式 [第 1 部分]