我需要在JavaScript中检查邮政编码。规则是4位数是强制性的,最后2位是可选的。数字和字母之间也有1个空格。
示例:
1019 //true
1019PZ //true
1019 PZ //true
1019P //false
(and anything else is false)
这是我到目前为止的正则表达式。但在这个正则表达式中,最后的字母不是可选的,而是强制性的
var regex = /^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i;
是否有任何建议可以选择最后的字母?
答案 0 :(得分:4)
将[a-z]{2}
组与非捕获组(?:[a-z]{2})?
后跟?
,以使该组成为可选组。这样做,两个字母将是可选的,你不能只有一个字母。
^[1-9][0-9]{3} ?(?!sa|sd|ss)(?:[a-z]{2})?$
答案 1 :(得分:0)
例如,你可以试试这个:
/^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{0,2}$/
只需在零范围内添加零值即可,这意味着您的信件可以从零到两次出现。
答案 2 :(得分:0)
以下作品:
\d{4} ?[A-z]{2}?