Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的正则表达式正确吗^(?!|[0-9])(?!.[A-Za-z0-9]和x2B;(?<;!)$_Javascript_Regex - Fatal编程技术网

Javascript 我的正则表达式正确吗^(?!|[0-9])(?!.[A-Za-z0-9]和x2B;(?<;!)$

Javascript 我的正则表达式正确吗^(?!|[0-9])(?!.[A-Za-z0-9]和x2B;(?<;!)$,javascript,regex,Javascript,Regex,我的正则表达式: ^(?!_|[0-9])(?!.*__)[A-Za-z0-9_]+(?<!_)$ ^(?![0-9])(?!.[A-Za-z0-9])+(?)? 这就是我想要实现的目标: 不能以数字或下划线开头 不允许使用连续下划线 只允许使用字母、数字和下划线 不能以下划线结尾 我的正则表达式是否符合我的要求?我做了一项研究,说我的正则表达式具有负lookhehind,javascript不支持它。请帮助我创建支持javascript的等价正则表达式 非常感谢。您的模式满足了您的要求

我的正则表达式:

^(?!_|[0-9])(?!.*__)[A-Za-z0-9_]+(?<!_)$
^(?![0-9])(?!.[A-Za-z0-9])+(?)?
这就是我想要实现的目标:

  • 不能以数字或下划线开头
  • 不允许使用连续下划线
  • 只允许使用字母、数字和下划线
  • 不能以下划线结尾
  • 我的正则表达式是否符合我的要求?我做了一项研究,说我的正则表达式具有负lookhehind,javascript不支持它。请帮助我创建支持javascript的等价正则表达式


    非常感谢。

    您的模式满足了您的要求。不要对
    \u
    使用反向查找,而是在末尾匹配
    [a-Za-z0-9]
    (不带
    \u
    的字符集):

    您还可以将
    [A-Za-z0-9\
    简化为
    \w
    [0-9]
    简化为
    \d
    ,使用不区分大小写的标志,而不是重复
    A-Za-Z
    ,如果您愿意,还可以组合最初的负面外观:

    /^(?![_\d]|.*__)\w*[a-z\d]$/i
    

    这是我针对您列出的4项要求提出的建议:

    ^[a-zA-Z]([a-zA-Z0-9]*_[a-zA-Z0-9])*[a-zA-Z0-9]*$
    

    我不确定你在用正则表达式做什么,但对我来说它似乎无效。如果你想自己测试它,请尝试regex101.com

    你也可以使用正则表达式,在你不想要的情况下测试true,然后否定结果

    您不想要的案例:

  • 以数字或下划线开头:
    ^[0-9\]
  • 连续下划线:
    \uu
  • 字母、数字或下划线以外的内容:
    [^0-9a-z\]
  • 以下划线结尾:
    \u$
  • 最后,用ORs
    |
    将所有这些代码连接起来,给出:

    ^[0-9_]|_$|__|[^0-9a-z_]
    
    然后否定测试:

    !/^[0-9_]|_$|__|[^0-9a-z_]/gi.test('your string here')
    
    请参见此处的测试:

    你知道很多“regex测试”网站吗?这是你做的研究吗(例如)。最后,更具体的问题更好。你有没有发现不正确匹配的字符串?最好问“这是我的regex。它在ABC上不起作用。为什么不?”请看:同样,我也很困惑-你的标题询问你现有的正则表达式是否正确,最后一行询问如何在JavaScript中实现它。你问的是什么-这是否正确,或者如何修复它?不管怎样,堆栈溢出既不是免费的代码测试服务,也不是免费的代码转换服务。Can您想澄清您的问题吗?这也不起作用。甚至不匹配
    hello\u 123abc
    立即尝试,忘记最后的*
    !/^[0-9_]|_$|__|[^0-9a-z_]/gi.test('your string here')