RegexHow我可以验证字母之间的下划线

时间:2017-01-17 14:24:16

标签: regex

我如何允许任何单词字符,并且下划线之间应该有一个字母和数字。

示例:ab2_sb,s_s,

但它不应该允许sdc_或_s2

这是我的代码

[a-zA-Z0-9_]{6,255}$

我在javascript上使用正则表达式

2 个答案:

答案 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个字符。