我尝试使用以下限制创建正则表达式
遵循this answer的行,但无法使其发挥作用。
^(?=.{3,60}$)(?![\W_]*$)(?![0-9]*$)[\w\W\s]+$
答案 0 :(得分:1)
请注意,\W
与\s
匹配,因此'\w\W\s'
可以缩减为[\w\W]
。
您可以使用在开始时锚定的2个负向前瞻,强加两个“禁止”的条件,如下所示:
^(?![\W_]+$)(?![0-9]+$)[\w\W]{3,60}$
请参阅regex demo
模式详情:
^
- 字符串开头(?![\W_]+$)
- 字符串不能包含非字母数字字符(?![0-9]+$)
- 字符串不能只包含数字[\w\W]{3,60}
- 3到60个任意字符$
- 字符串结束。