带下划线、最小发生率和无最大发生率的字母数字字符串模式的正则表达式-javascript

带下划线、最小发生率和无最大发生率的字母数字字符串模式的正则表达式-javascript,javascript,jquery,regex,Javascript,Jquery,Regex,我不熟悉regex,正在尝试使用regex在javascript/jquery中进行验证,非常感谢您的帮助 输入为: 字母数字字符串 至少有3个下划线 下划线不能是连续的 下划线不能仅用空字符串分隔 字符串不能以下划线开头或结尾 有效测试用例: Abc_def_gh_123 Abc_def_1h_103_BA Abc_def_1h_103_BA 无效测试用例 \uuuuuuu \uuuuuu Abc\u d Abc_def_ghi_de21_ Abc_def_fg Abc_def_fg_ \u

我不熟悉regex,正在尝试使用regex在javascript/jquery中进行验证,非常感谢您的帮助

输入为:

  • 字母数字字符串
  • 至少有3个下划线
  • 下划线不能是连续的
  • 下划线不能仅用空字符串分隔
  • 字符串不能以下划线开头或结尾
  • 有效测试用例:

  • Abc_def_gh_123
  • Abc_def_1h_103_BA
  • Abc_def_1h_103_BA
  • 无效测试用例

  • \uuuuuuu
  • \uuuuuu
  • Abc\u d
  • Abc_def_ghi_de21_
  • Abc_def_fg
  • Abc_def_fg_
  • \u Abc\u def\u fg
  • 我尝试了javascript中的正则表达式

    /^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9]+$/
    
    但是它失败了,例如,如果字符串有3个以上的下划线

    (?=^[a-zA-Z0-9]+?_[a-zA-Z0-9]+?_[a-zA-Z0-9]+?_[a-zA-Z0-9_]*$)(?!.*?_$)(?!.*?_{2,}.*)^.*$
    
    试试这个,这个管用

    见演示


    此regexp应完成以下工作:

    /^([a-zA-Z0-9]+_){3,}[a-zA-Z0-9]+$/
    

    细分:

    [a-zA-Z0-9]+
    以任意大小写字母或数字开头

    ([a-zA-Z0-9]+
    包含一个下划线,后跟另一个小写/大写字母和数字序列

    {3,}$
    至少三次(三组下划线)


    愉快的编码:)

    那么Java、JavaScript或Perl?javaacript请-我有regex=/^[a-zA-Z0-9]+齌[a-zA-Z0-9]+齌[a-zA-Z0-9]+齌[a-zA-Z0-9]+$/;失败的地方–当字符串有3个以上下划线时,您可以使用您迄今为止尝试过的任何正则表达式编辑您的问题此
    \u ad\u af\u ag
    ?在标记“\u ad\u af\u ag”通过您的正则表达式后,单击编辑,虽然它不应该
    Abc_def_gh__123
    而且:/@TomSarduy它在有效的测试用例下。@vks:OP说下划线不能被删除consecutive@TomSarduy一个漏掉的点是:(:P尽管如此,我的不懈努力仍在继续。现在看来,我们能说这个答案是第一个正确的答案吗?
    /([a-zA-Z0-9]+_[a-zA-Z0-9]+){3,}$/mg