测试一个字符串($ text)以查看它是否包含数字

时间:2011-03-29 14:35:32

标签: php mysql

我正在尝试测试字符串以查看其中是否包含任何数字。我尝试这个代码并没有任何反应:

<?php

function hasNumber($text) {

$length = strlen ($text); 
for ($index=0; $index<$length; $index++){
    if (is_numeric($text[$index])){
    echo "The name: ".$_POST['text']." is not numeric!";
    return true;
    }else{
    echo "The name: ".$_POST['text']." is numeric!";
    return false;  
    }
        }
    if (isset($_POST['submitText'])){
    hasNumber($_POST['text']);
    }
    }

?>
<form action = 'valid.php' method ='POST'>
<table>
    Enter Name :<input name="text"><br>

    <tr><td><input type="submit" type="text" name="submitText" value="Validate text"></td></tr>

3 个答案:

答案 0 :(得分:2)

请改为尝试:

function hasNumber($text) {
    return preg_match("/\d/", $text);
}

或者如果你想要一个布尔值而不是匹配数:

function hasNumber($text) {
    return preg_match("/\d/", $text) > 0;
}

答案 1 :(得分:0)

您可以将preg_match与正则表达式用于数字:

preg_match('([0-9]+)', $string, $matches);

答案 2 :(得分:0)

如果要查明整个字符串是否代表数值:

if (is_numeric($_POST['text'])) {

如果您想知道该字符串是否包含一个或多个数字数字:

if (preg_match('[^.0-9]', $_POST['text']) > 0) {