城市和州的正则表达式模式

时间:2016-04-12 04:31:28

标签: javascript angularjs regex

用户应该能够通过城市昏迷状态或城市空间状态输入城市和州。我想解决一个问题。这种正则表达式。

/^[A-Za-z]+(\s?)+[,\s](\s?)+[A-Za-z]{2,}$/

以下所有输入都应返回true。但是正则表达式失败了。

  

纽约,纽约真实

     

纽约纽约错误

     

Seattle WA true

     

西雅图,华盛顿州

     

Winston Salem,NC false

     

Winston Salem NC false

1 个答案:

答案 0 :(得分:6)

你需要这些成分:

Word = [A-Za-z]+
Space = [ ]
CityName = Word (?:Space Word)*
StateAbbrev = [A-Za-z]{2}
Everything = (CityName) ,? Space (StateAbbrev)

将这些结合在一起,你的正则表达式是:

/([A-Za-z]+(?: [A-Za-z]+)*),? ([A-Za-z]{2})/

每当此模式匹配时,您可以将城市名称和状态提取为捕获组1和2。