![](/img/trans.png)
[英]JavaScript Regex - Match a string with that contains some characters and doesn't contain others
[英]Regex, string is a combination of whitelisted characters and doesn't contain any in blacklist
1)如何正则表达式验证用户输入是否包含A组中的任何字符组合,以及不包含来自另一组D的任何字符?
2)同时检查字符串长度是否在2到255之间
换句话说,对于所有字符串字符:A AND NOT D.
我从服务器收到两组字符(白名单和黑名单),需要根据这些字符验证用户输入。 我不能影响设计,必须忍受它。 由于其他设计限制,我也必须使用正则表达式。
这是我到目前为止所做的事情(根本不工作):
/^(?![23]+)[0-9]{2,255}$/
为简单起见, 23将是黑名单
为简单起见, 0-9将是字符的白名单
一些例子:
3014567890 - >失败,3存在
0145678902 - >失败,2存在
0123456789 - >失败,2和3存在
014567890 - >好的
88774411489 - >好的
5 - >失败,没有足够的人物
1abc - >失败,abc非法chars
ab1c - >失败,abc非法的chars
abc1 - >失败,abc非法的字符
谢谢!
你几乎就在那里,先行断言需要一些工作:
/^(?!.*[23])[0-9]{2,255}$/
这样,负向前瞻中的正则表达式匹配,如果字符串中有(至少)一个2
或3
(即,在任意数量的字符( .*
)之后),导致断言失败。
在这个(显然)简化的例子中,你当然可以使用/^[014-9]{2,255}$/
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.