我如何检查preg_match包含我的字符串是否有任何数字?

时间:2014-10-14 13:06:34

标签: php preg-match

我需要检查一串数字,即所有其他字符,如〜; &安培; * ^#& ^不应该被检查。我需要它来形成验证。现在我使用那种结构:

return ( ! preg_match("/^([0-9])+$/i", $str)) ? FALSE : TRUE;

我有一个表格用于edeiting用户的名字和姓氏。此外,当有人试图添加名字时,如下所示:“kickman!@#$%^& ())))(& ^%$ ## $%”我的表格应该完成验证没有错误。但是如果我有任何数字我应该得到一个错误,如同:“123kickman!@#$%^& ())))(& ^%$ ## $%”。

3 个答案:

答案 0 :(得分:0)

试试这个:

if (!preg_match("#^[a-zA-Z0-9]+$#", $text)){
   echo 'String also contains other characters.';  
} else {
   echo 'String only contains numbers and letters.';
}

或者这个:

function countDigits($str)
{
    return preg_match_all( "/[0-9]/", $str );
}

答案 1 :(得分:0)

如果您要查看所有字符是否都是数字,只需创建一个函数并将字符串传递给它:

$x = match("01234");
echo $x."<br>";
$x = match("0$#21234");
echo $x."<br>";
function match($str)
{
return ( ! preg_match("/^([0-9])+$/i", $str)) ? 0 : 1;
}   

答案 2 :(得分:0)

怎么样:

根据问题更新进行编辑:

if (preg_match('/\d/', $string)) {
    echo "KO, at least one digit\n";
} else {
    echo "OK, no digits found\n";
}

或者,在函数中:

return !preg_match('/d/', $string);