![](/img/trans.png)
[英]jquery how to regex css style positive to negative, negative to positive?
[英]How to combine a negative and positive regex?
我认为可以定义一个 RegExp 字符串来检查两件事 - 用户是否没有尝试输入邮政信箱以及用户是否仅使用有效字符。 两个独立的 RegExp 如下:
邮政信箱验证:
^((?!^.*(\b[Pp]([Oo0][Ss][Tt])?\.*\s*[Oo0]([Ff][Ff]([Ii][Cc][Ee])?)?\.*\s*([Bb][Oo0][Xx])\d*\s*\b.*)).)*$
用户只能输入这些字符:
^[a-z|A-Z|0-9 _&'/#]*$
当我尝试简单地将两个正则表达式与垂直“或”字符“|”连接在一起时,它没有达到预期的结果。 这甚至可能吗? 单个正则表达式可以实现两种验证吗?
如果您使用自己的正则表达式进行组合,您应该注意到第一个正则表达式实际上是一种模式,其中包含一种格式不佳的调节贪婪令牌。
看来你想要类似的东西
/^(?!.*\b[Pp]([Oo0][Ss][Tt])?\.*\s*[Oo0]([Ff][Ff]([Ii][Cc][Ee])?)?\.*\s*([Bb][Oo0][Xx])\d*\s*\b)[a-zA-Z0-9 _&'\/#]*$/
^^^^^^^^^^^^^^^^^^
查看正则表达式演示
注意[az|AZ|0-9 _&'/#]
不应该包含|
,因为它们被视为文字管道符号,而您很可能打算将它们用作 OR 运算符。 它们是括号内的 OR 运算符,但不是字符类内的运算符。
图案详情:
^
- 字符串的开始(?!.*\\b[Pp]([Oo0][Ss][Tt])?\\.*\\s*[Oo0]([Ff][Ff]([Ii][Cc][Ee])?)?\\.*\\s*([Bb][Oo0][Xx])\\d*\\s*\\b)
- 如果其中的模式匹配,则匹配失败的负前瞻[a-zA-Z0-9 _&'/#]*
- 零个或多个允许的字符$
- 字符串的结尾。 由于[a-zA-Z0-9_]
= \\w
,你可以写成
/^(?!.*\b[Pp]([Oo0][Ss][Tt])?\.*\s*[Oo0]([Ff][Ff]([Ii][Cc][Ee])?)?\.*\s*([Bb][Oo0][Xx])\d*\s*\b)[\w &'\/#]*$/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.