我有一些困难让这些案例运行正则表达式 - 抱歉,我对正则表达式很新,并且无法解决这个问题。
模式如下:
因此,如果与字母组合,邮政编码必须填写范围内给出的最大长度
比如{2,5}
。
我试过这个,但是不能像我需要的那样工作:
/^([0-9]{2,5})(\s+[^a-zA-Z]{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/