我正在尝试测试字符串以查看其中是否包含任何数字。我尝试这个代码并没有任何反应:
<?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>
答案 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) {