如果我有一个网页,我需要确保变量的用户输入只是字母(上部和下部),数字和破折号以及长度必须恰好是20个字符,如何执行该操作?
答案 0 :(得分:4)
使用正则表达式很容易做到:
echo preg_match('/^[0-9a-zA-Z\-]{20}$/', 'abcd');
0
echo preg_match('/^[0-9a-zA-Z\-]{20}$/', 'abcdefghijkmlnopqrst');
1
答案 1 :(得分:3)
答案 2 :(得分:0)
如果您因为性能而不信任regexp,则可能会使用以下内容,这将需要更长的时间:
function checkalphanum($str){
$allowed = "0123456789abcdefghijklmnopqrstuvwxyz_-ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(strlen($str) == 20){ return false;}
for($i=0; $i < count($str); $i++){
if(strpos($allowed, substr($str, $i, 1)) == -1){
return false;
}
}
return true;
}