regex - 城市名称的正则表达式

标签 regex city

我需要一个用于验证城市文本框的正则表达式,城市文本框字段只接受字母、空格和破折号 (-)。

最佳答案

这可以是任意复杂的,这取决于您需要匹配的精确程度以及您愿意允许的变化。

一些相当简单的东西,比如 ^[a-zA-Z]+(?:[\s-][a-zA-Z]+)*$应该管用。

警告 :这与 München 等城市不匹配,但在这里您基本上需要使用表达式的 [a-zA-Z] 部分,并定义特定情况下允许使用的字符。

请记住,它也允许像 San----Francisco 这样的东西,或者有几个空间。

翻译成类似的东西:
1 个或多个字母,后跟一个块: 0 个或多个空格或破折号和更多字母,最后一个块可以出现 0 次或多次。

里面有奇怪的东西:?:少量。如果您不熟悉正则表达式,它可能会令人困惑,但这只是说明括号之间的正则表达式不是捕获组(我不想捕获它匹配的部分以供以后重用),因此括号仅用于对表达式进行分组(而不是捕获匹配项)。

"New York" // passes

"San-Francisco" // passes

"San Fran Cisco" // passes (sorry, needed an example with three tokens)

"Chicago" // passes

"  Chicago" // doesn't pass, starts with spaces

"San-" // doesn't pass, ends with a dash

关于regex - 城市名称的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757013/

相关文章:

javascript - 正则表达式在javaScript中将数字与浮点相匹配

java - 在捕获的组上应用正则表达式

c# - 用于字母和空格的 .NET RegEx

javascript - 还有一个 document.referrer.pathname 的事情

php - 将 WooCommerce 城市字段更改为前端和管理中的下拉列表

state - 我在哪里可以获得国家、州和城市的列表?

javascript - 为什么javascript中的.replace()会替换then中的 "the"?

android - 从 Android 上的 Google Place API 获取城市名称和邮政编码

web-services - api 检索附近城市的兴趣点

android - API 传递经度/纬度并返回城市名称