什么是正则表达式,以便第一个字符始终是一个字母,其余字母可以是字母或数字,或者什么都不是?
我有这个,当你输入至少两个字符时有效,但是当你输入一个字母而没有别的时候它不起作用。
/^[A-z][A-z0-9]+$/
我需要修改什么才能只允许一个字母? 感谢
答案 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