【问题标题】:How can I use javascript regex to validate a city name?如何使用 javascript 正则表达式来验证城市名称?
【发布时间】:2013-03-28 06:42:02
【问题描述】:

var cityRegex = /^[a-zA-z] ?([a-zA-z]|[a-zA-z] )*[a-zA-z]$/; 是我试过的。

但是当你输入像“圣彼得堡”这样的城市时它会出错。

更新:似乎几乎是失败的原因。有太多奇怪的城市,有数字、破折号、撇号、句号等。

【问题讨论】:

  • 最好的办法是验证字符数并确保没有数字。城市名称可以有破折号也可以有前缀,我不会相信一个不可原谅的正则表达式。
  • 对我来说听起来像是一个失败的原因......也许可以根据谷歌地图 api 验证它
  • 您希望通过这样的过滤器包含/排除什么?
  • Hill Number 1 是一座城市,Y City 和 Land O' Lakes 也是如此 - 曾经去过 Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch
  • 不要忘记带有非 ASCII 字符的城市名称。

标签: javascript jquery regex


【解决方案1】:

如果 cmets 不够清楚,这不是可以通过正则表达式实际验证的东西。正确的做法是接受将输入一些不良数据并继续前进。如果你真的需要这座城市存在并且你认为这个javascript validation 会帮助你,那你就大错特错了。

在回答您的问题时,正确的验证是:

.*

【讨论】:

  • +1,虽然我会推荐.+。我想我们可以自信地说没有零宽度的城市名称。
  • @Cyborgx37 哈哈。我会选择[^\n]+,因为肯定没有 2 线城市。如果我住在没有城市的偏僻地方怎么办?你应该因为我不住在城市而拒绝我吗?当然不是。我认为.* 更清楚地说明了这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
相关资源
最近更新 更多