Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 - Fatal编程技术网

Javascript 不以数字开头且仅允许字母数字的字符串的正则表达式

Javascript 不以数字开头且仅允许字母数字的字符串的正则表达式,javascript,regex,Javascript,Regex,我正在尝试为以下条件创建一个javascript正则表达式 仅允许字母数字 但也允许下划线(389;) 不允许以数字开头 不允许以下划线开头 我已经创建了一个regex^(?![0-9]|[].$).,它将适用于上面的最后两个条件。请建议如何添加和条件以使其适用于上述所有场景。您可以使用正则表达式 ^[a-zA-Z][A-Za-z0-9_]*$ 请参见您可以使用以下正则表达式: ^[A-Za-z]\w*$ 详细信息 ^-字符串的开头 [A-Za-z]-任何ASCII字母 \w*-零个或

我正在尝试为以下条件创建一个javascript正则表达式

  • 仅允许字母数字
  • 但也允许下划线(389;)
  • 不允许以数字开头
  • 不允许以下划线开头
我已经创建了一个regex
^(?![0-9]|[].$).
,它将适用于上面的最后两个条件。请建议如何添加
条件以使其适用于上述所有场景。

您可以使用正则表达式

^[a-zA-Z][A-Za-z0-9_]*$

请参见

您可以使用以下正则表达式:

^[A-Za-z]\w*$
详细信息

  • ^
    -字符串的开头
  • [A-Za-z]
    -任何ASCII字母
  • \w*
    -零个或多个字母/数字/
    \u
  • $
    -字符串结束
要允许空字符串匹配,请使用可选的非捕获组包装整个模式:

^(?:[A-Za-z]\w*)?$
 ^^^           ^^

您可以使用此正则表达式:

^(?![0-9_])\w+$


(?![0-9])
是一个负前瞻,当我们有一个数字或开始时,
会导致匹配失败。

您可能对最后两个要求考虑得太过严格了。如果是字母数字(那么..a-z和0-9,对吗?)那么说“不允许数字或下划线在开头”可能与“必须以字母开头”相同

这是“必须以a-z开头”,然后是“必须后跟零个或多个字母、数字或下划线”。字符类(例如
[a-z]
是字符类)之外的“^”表示“输入开始”。$表示输入结束

如果您逐字解释最后两个需求,您可以写:

[^0-9_] 

这意味着“任何不是0-9也不是下划线的字符”,但它不一定限制用户输入除a-z以外的其他字符作为第一个字符,因此他们可能会输入一个#,它将传递..

代码[^0-9]是错误的,因为它匹配除数字和
以外的任何字符,因此匹配标点符号、符号、中文、高棉文字符等。怎么办,不能包含下划线well@CharithPrabhagya
\w
匹配
\u
。因此,使用
^(?[A-Za-z][^\w\u]*)?$
。或者干脆使用
^(?[A-Za-z][A-Za-z0-9]*)?$
[^0-9_]