提问者:小点点

仅包含字母数字字符和下划线的正则表达式,以字母字符开头


我正在尝试验证Firebase事件名称:

事件名称最长可达40个字符,只能包含字母数字字符和下划线(_),并且必须以字母字符开头。

无效:

  • 4foo(以数字开头)
  • foo bar(包含空格)
  • foo$@bar(包含特殊字符)

有效:

  • foo
  • foo_bar
  • Foo_Bar

我试过\d?[^A-Za-z0-9_]如果有任何特殊字符和空格,它会匹配,但它不会在开头匹配带有数字字符的字符串。


共2个答案

匿名用户

使用

^[A-Za-z][A-Za-z0-9_]{0,39}$

请参阅正则表达式证明。

同义词:

^[A-Za-z]\w{0,39}$
^\p{L}\w{0,39}$
^[[:alpha:]]\w{0,39}$

解释

--------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  [A-Za-z]                 any character of: 'A' to 'Z', 'a' to 'z'
--------------------------------------------------------------------------------
  [A-Za-z0-9_]{0,39}       any character of: 'A' to 'Z', 'a' to 'z',
                           '0' to '9', '_' (between 0 and 39 times
                           (matching the most amount possible))
--------------------------------------------------------------------------------
  $                        before an optional \n, and the end of the
                           string

匿名用户

试试这个:-

正则表达式