2017-11-28 7 views
1

文字列のタイプが3桁、3桁、またはいずれかの組み合わせで始まるかどうかを指定する必要があります。ユーザーが入力する文字列。PHP文字列のキャラクタライゼーション

私のコードは文字と数字ではありますが、組み合わせではありません。私は何をすべきか?

$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?'; 
} 
+0

どのような組み合わせを定義すれば、確かにそれは 'a-z0-9'で始まる文字列ですか? – Martin

+0

あなたの 'IF'文' is_string'が間違っています。 'X =#'は3文字の文字列ですが、3文字のアルファベットではありません。 – Martin

+0

3文字または数字で始まらないものを意味します。例a2cの場合。 –

答えて

3

意図しない結果が返される可能性があります。 は信頼性を求めています:

$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?'; 
} 

p.s.部分文字列が文字と数字の組み合わせであるかどうかを確認する場合は、ctype_alnum()とすることができます。