我想验证地址字段中的邮政编码。这就是为什么我要写正则表达式的原因,除了a-z(上下两个),0-9数字,方括号(例如'()')和连字符(-)和空格。但是必须遵循一些规则,例如不能将单个空格放在第一位,不允许两个或多个空格。
一些无效的条目
1254588
125 255
((125)) 255
125--255
(125) (255)
125>2458
EL$ 2458
@L$ 2458
如果这些都是重要的规则,那很容易:
^ # Start of string
(?! ) # First character mustn't be space
(?!.* ) # No two spaces in a row
[A-Za-z0-9 ()-]* # Match any number of these allowed characters
$ # End of string
或者,对于JavaScript:
/^(?! )(?!.* )[A-Za-z0-9 ()-]*$/
但是我猜想"))))(((("
,"-------"
,"A"
甚至""
之类的字符串实际上不应该匹配,但是您的规则允许它们。