邮政编码和国家匹配与Javascript

时间:2013-09-01 10:56:14

标签: javascript regex

我有一些困难让这些案例运行正则表达式 - 抱歉,我对正则表达式很新,并且无法解决这个问题。

模式如下:

  • 12(true)
  • 123(true)
  • 1234(true)
  • 12345(true)
  • 1 a ...(false)
  • 12 a ...(false)
  • 123 a ...(false)
  • 1234 a ...(false)
  • 12345 m(true)
  • 12345mün(true)
  • münchen123(false)
  • mün12345(true)

因此,如果与字母组合,邮政编码必须填写范围内给出的最大长度 比如{2,5}

我试过这个,但是不能像我需要的那样工作:

/^([0-9]{2,5})(\s+[^a-zA-Z]{2,})?$/

2 个答案:

答案 0 :(得分:3)

有时,正则表达式不是唯一的答案。

if (there are letters in the string) {
    search for /\d{5}/
} else {
    search for /\d{2,5}/
}

答案 1 :(得分:2)

这有效:

/^([0-9]{5}\s[a-z]+)$|^([a-z]+\s[0-9]{5})$|^([0-9]{2,5})$/i(评论后编辑)

注意OR运算符:

匹配[0-9]{5}\s[a-z]+[a-z]+\s[0-9]{5}[0-9]{2,5}

您可以在匹配字词中添加任何国际字符,例如:[a-zä-üß],但根据您使用的语言,可以支持更好的选项。

<强> TESTS http://jsfiddle.net/zd4Qm/4/