我正在尝试验证Firebase事件名称:
事件名称最长可达40个字符,只能包含字母数字字符和下划线(_),并且必须以字母字符开头。
无效:
4foo
(以数字开头)foo bar
(包含空格)foo$@bar
(包含特殊字符)有效:
foo
foo_bar
Foo_Bar
我试过\d?[^A-Za-z0-9_]
如果有任何特殊字符和空格,它会匹配,但它不会在开头匹配带有数字字符的字符串。
使用
^[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
试试这个:-
正则表达式