我有^[a-zA-Z0-9 @&$]*$
,但在少数情况下不适合我。
如果有人打字
1234567
)&123abc
)需要被拒绝。请注意,特殊字符可以位于中间和结尾。
答案 0 :(得分:2)
您似乎需要避免匹配仅包含数字的字符串,并确保字符串以字母数字开头。我假设你还需要能够匹配空字符串(原始正则表达式匹配空字符串)。
这就是为什么我建议
^(?!\d+$)(?:[a-zA-Z0-9][a-zA-Z0-9 @&$]*)?$
请参阅regex demo
<强>详情
^
- 字符串开头(?!\d+$)
- 如果字符串仅为数字(?:[a-zA-Z0-9][a-zA-Z0-9 @&$]*)?
- 可选序列:
[a-zA-Z0-9]
- 数字或字母[a-zA-Z0-9 @&$]*
- 0+位,字母,空格,@
,&
或$
字符$
- 字符串结束。答案 1 :(得分:1)