Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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 非法第一个字符的正则表达式_Javascript_Regex_Html - Fatal编程技术网

Javascript 非法第一个字符的正则表达式

Javascript 非法第一个字符的正则表达式,javascript,regex,html,Javascript,Regex,Html,我有一个使用HTML5模式属性的输入字段,它只允许字母数字字符和下划线^[a-zA-Z0-9_]+$ 如何调整代码,使字符串不能以下划线开头,但仍允许在字符串的其余部分使用下划线 在此方面的任何帮助都将不胜感激 注意:如果我上面的解释不清楚,下面是有效/无效输入值的列表 下划线是否有效 _以下划线开始\u无效 名字有效 姓氏有效 _非法无效 使用消极的前瞻: ^(?!_)[a-zA-Z0-9_]+$ 这与您使用的正则表达式相同,只是^(?!\u)表示第一个字符不能是下划线。您也可以不将包含在第

我有一个使用HTML5模式属性的输入字段,它只允许字母数字字符和下划线
^[a-zA-Z0-9_]+$

如何调整代码,使字符串不能以下划线开头,但仍允许在字符串的其余部分使用下划线

在此方面的任何帮助都将不胜感激

注意:如果我上面的解释不清楚,下面是有效/无效输入值的列表

  • 下划线
    是否有效
  • _以下划线开始\u
    无效
  • 名字
    有效
  • 姓氏
    有效
  • _非法
    无效

  • 使用消极的前瞻:

    ^(?!_)[a-zA-Z0-9_]+$
    

    这与您使用的正则表达式相同,只是
    ^(?!\u)
    表示第一个字符不能是下划线。

    您也可以不将
    包含在第一个组中

    ^[a-zA-Z0-9][a-zA-Z0-9_]*$
    
    甚至:

    ^[^_][a-zA-Z0-9_]*$
    

    啊,聪明。这也会起作用。谢谢你的建议@Johntiggernott注意,对于支持单字母标识符的回答,最后一个
    +
    应该是
    *
    。除此之外,这还可以。第二个选项
    ^[^.][a-zA-Z0-9.]*$
    不正确。它将允许对第一个字符使用垃圾。@nhahtdh它将播下所有内容,但“不完全是trashI”意味着它将允许对第一个字符使用除“之外”的任何Unicode字符。