我如何允许任何单词字符,并且下划线之间应该有一个字母和数字。
示例:ab2_sb,s_s,
但它不应该允许sdc_或_s2
这是我的代码
[a-zA-Z0-9_]{6,255}$
我在javascript上使用正则表达式
答案 0 :(得分:4)
您需要将字符长度检查与模式分开,如果没有隐式添加,请不要忘记锚点:
^(?=.{6,255}$)[a-zA-Z0-9]+(?:_[a-zA-Z0-9]+)*$
如果只能有1个下划线,请将最后一个*
替换为?
量词。
<强>详情:
^
- 字符串开头(?=.{6,255}$)
- 长度检查,除了换行符号之外的6到255个字符[a-zA-Z0-9]+
- 一个或多个字母数字字符(?:_[a-zA-Z0-9]+)*
- 零次或多次出现:
_
- 下划线[a-zA-Z0-9]+
- 一个或多个字母数字字符$
- 字符串结束。答案 1 :(得分:1)
怎么样:
([a-zA-Z]+_?[a-zA-Z]+)*
这样可以确保无论何时出现下划线,都必须至少包含1个字符。