【发布时间】:2021-02-26 01:00:23
【问题描述】:
我已经尝试了很多正则表达式模式,但我找不到一个完美的正则表达式,它可以执行以下操作(最少 3 个字符,最多 30 个字符,可以允许特殊字符,如果所有字符都只是特殊字符,它应该返回 false )。
期望:
- "ben":true,(满足 3 个字符)
- "ab":false,(不满足 3 个字符)
- "ben franklin":true,(可以留空格)
- "ben_franklin":true,(可以允许特殊字符)
- "ben@:true,(满足特殊字符和最少 3 个字符)
- "%#$":false,(虽然是 3char ,但都是特殊字符)
- “本#franklin”:真,
- "be'franklin":true
- "&%^$@#!*&^":false
【问题讨论】:
-
我想如果你连续有 10 个特殊字符也是假的?
"&%^$@#!*&^":false? -
@xdhmoore 是的,应该是假的
-
是否需要你只用一个正则表达式来解决它?如果将任务拆分为两个正则表达式,问题就会变得容易得多。首先列入白名单(检查它是否只有您想要的字符和所需长度)并接受它们,然后将它们列入黑名单(检查字符串是否仅包含特殊字符)并拒绝那些
-
@SamridhTuladhar 这也是我要建议的。
标签: javascript regex