2015-06-08 24 views
1

我有一個輸入字段,它使用HTML5模式屬性只允許字母數字字符和下劃線^[a-zA-Z0-9_]+$非法第一個字符的正則表達式

如何調整代碼,使字符串不能開始與下劃線字符,但仍然允許他們在字符串的其餘部分?

任何幫助,將不勝感激!

注意:如果我上面的解釋不清楚,下面是有效/無效輸入值的列表。

  1. has_underscore valid
  2. _begins_with_underscore invalid
  3. FIRST_NAME valid
  4. 姓氏valid
  5. _illegal invalid

回答

1

使用負前瞻:

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

這與您所使用的正則表達式相同,只是^(?!_)表示第一個字符不能是下劃線。

+0

非常感謝!這解決了這個問題。 –

0

你也可以只是不包括第一組

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

甚至在_

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

啊,聰明。這也會起作用。感謝您的建議! –

+0

@JohnTiggernaught請注意,對於支持單字母標識符的這個答案,最後一個'+'應該是'*'。除此之外,這工作正常。 –

+0

第二個選項'^ [^ _] [a-zA-Z0-9 _] * $'不正確。它將允許第一個角色的垃圾。 – nhahtdh

相關問題