我需要检查preg_match
的用户名是否仅来自a-z
,A-Z
或0-9
。首先我使用ereg
,但我发现它已被弃用,因此我使用preg_match
。
但它没有用。任何的想法 ?
$test = "test";
if (preg_match("/^[_a-zA-Z0-9]+$/", $test)){
echo"account generated" ;
}else{
echo "Please write proper username";
}
答案 0 :(得分:4)
删除正则表达式中的!
,它会起作用!
正则表达式:
^[_a-zA-Z0-9]+$/
^
断言字符串开头的位置
[_a-zA-Z0-9]+
匹配下面列表中的单个字符
量词:+
在一次和无限次之间,尽可能多次,根据需要回馈[贪心]
_
字面字符_
a-z
a和z之间范围内的单个字符(区分大小写)
A-Z
A和Z之间范围内的单个字符(区分大小写)
0-9
0到9之间范围内的单个字符
$
断言字符串末尾的位置
也是一个测试你的正则表达式的好网站:regex101(也从那里获得了那些信息)
如果你正在学习正则表达式,cheat sheet总是好的:D