1

我需要指定字符串的类型是否以 3 个数字、3 个字母或组合开头。用户键入的字符串。

我的代码适用于字母和数字,但不适用于组合。我应该怎么办?

 $type = substr($value, 0, 3);
 if(is_numeric($type)){
     echo 'starts with 3 digits';
 }elseif(is_string($type)){
     echo 'starts with 3 alphabetic characters';
 }else{
     echo 'undefined type?';
 }
4

1 回答 1

3

您的函数调用可能会返回意外结果。我建议ctype_呼吁可靠性:

$type = substr($value, 0, 3);
if(ctype_digit($type)){
    echo 'starts with 3 digits';
}elseif(ctype_alpha($type)){
    echo 'starts with 3 alphabetic characters';
}else{
    echo 'undefined type?';
}

ps 如果要检查子串是否是字母和数字的组合,可以ctype_alnum().

于 2017-11-28T23:53:56.223 回答