第一个字符的正则表达式是一个字母?

时间:2014-08-11 16:17:35

标签: regex

什么是正则表达式,以便第一个字符始终是一个字母,其余字母可以是字母或数字,或者什么都不是?

我有这个,当你输入至少两个字符时有效,但是当你输入一个字母而没有别的时候它不起作用。

/^[A-z][A-z0-9]+$/

我需要修改什么才能只允许一个字母? 感谢

5 个答案:

答案 0 :(得分:8)

你的正则表达式是不对的:

/^[A-z][A-z0-9]+$/

您需要使用:

/^[A-Za-z][A-Za-z0-9]*$/

由于范围[A-z]由非字母字符组成,例如[]^等(基本上来自91-96 ASCII码的任何内容)。

最好更改量词+ *,因为您的输入只能包含一个字符。

答案 1 :(得分:5)

你的正则表达式需要两个字符(与字母btw不同),因为你正在寻找一个字母,至少一个(+)字母或数字。

为了更好地从字母开始字符串,然后是你需要的任何其他字符:

^[A-Za-z].*$

^表示行开头

[A-Za-z]只获得字母,大写或小写

.*字面上任何字符,0次或更多次

$表示字符串的结尾

答案 2 :(得分:4)

+修饰符替换为*(将含义更改为" 1或更多"更改为" 0或更多")。

答案 3 :(得分:2)

将正则表达式更改为:

/^[A-Za-z][A-Za-z0-9]*$/
---------------------^

请务必将+更改为*,使其与0或更高匹配。

答案 4 :(得分:1)

可以这样做

 # ^(?i)[a-z][a-z0-9]*$

 ^           # BOS
 (?i)        # Ignore case
 [a-z]       # a-z case insensitive
 [a-z0-9]*   # Same as [^\W_]
 $           # EOS