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

时间:2015-06-08 03:04:38

标签: javascript regex html5

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

如何调整代码,使字符串不能开始,并带有下划线字符,但仍然允许它们在字符串的其余部分内?

非常感谢任何帮助!

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

  1. has_underscore valid
  2. _begins_with_underscore invalid
  3. first_name valid
  4. last_name valid
  5. _illegal invalid

2 个答案:

答案 0 :(得分:1)

使用否定前瞻:

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

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

答案 1 :(得分:0)

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

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

甚至:

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