我有这个,我遵循PHP手册:
if(is_numeric(substr($username,0, 2))){
echo 'Invalid - use letters in first 2 chars';
}else{
echo 'Valid';
}
我检查了这个字符串:
为什么这样做? 它也应该为9dddd返回Invalid,这里有什么错误看起来不错?
感谢。
编辑:非常感谢,我已经使用了OlivierH样本并且工作正常。
解决。
答案 0 :(得分:2)
你的订单错了。您显示"无效"如果这两个标志是数字。
答案 1 :(得分:1)
在您的情况下,您要测试用户名的 2个首字符是否包含数字。 最好的方法是使用正则表达式(documentation here)
改变这个:
if(is_numeric(substr($username,0, 2))){
echo 'Invalid - use letters in first 2 chars';
}
else{
echo 'Valid';
}
要
if(preg_match('#[0-9]#', substr($username,0, 2))){
echo 'Invalid - use letters in first 2 chars';
}
else{
echo 'Valid';
}
答案 2 :(得分:0)
9d不是数字,您必须使用正则表达式检查:
if(preg_match('/\d/', substr($username,0, 2))){
echo 'Invalid - use letters in first 2 chars';
}else{
echo 'Valid';
}
答案 3 :(得分:0)
你不能这样做 在9aaa的情况下,substr($ username,0,2)将返回9a .. 9a不是有效的数字。
您应该执行类似
的操作if (is_numeric(substr($username,0, 1)) || is_numeric(substr($username,0, 2))){
echo 'Invalid - use letters in first 2 chars';
} else {
echo 'Valid';
}
为了检查单个或双重第一个字符。