如何验证输入字符串中的模式?

时间:2012-02-25 23:53:46

标签: php validation

如果我有一个网页,我需要确保变量的用户输入只是字母(上部和下部),数字和破折号以及长度必须恰好是20个字符,如何执行该操作?

3 个答案:

答案 0 :(得分:4)

使用正则表达式很容易做到:

echo preg_match('/^[0-9a-zA-Z\-]{20}$/', 'abcd');
0
echo preg_match('/^[0-9a-zA-Z\-]{20}$/', 'abcdefghijkmlnopqrst');
1

答案 1 :(得分:3)

您可以使用正则表达式。请参阅preg_match

您的正则表达式可能类似于:

/^[A-Za-z0-9\-]{20}$/

/^[\w-]{20}$/

答案 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;
}