即使我输入的电话号码无效,我的正则表达式也会对其进行验证并显示有效消息。任何想法都出错了?
<form action="<?php $PHP_SELF; ?>" method="POST">
Name (First Middlie Last) : <input type="text" name="name" value=""><br />
Telephone Number : <input type="text" name="phone" value=""><br />
<input type="submit">
</form>
<?php } else {
extract($_REQUEST);
$phoneDashes = preg_replace("/\D/","", $phone);
$nameRegex = $_POST['name'];
if(preg_match("/(\d{3})(\d{3})(\d{4})/", $phoneDashes,$matches)) {
echo "Valid phone number <br />";
}
else {
echo "Not a valid phone number <br />";
}
preg_match("/(^[\-a-z]+)\s([\-a-z])\s([\-a-z]+)$/i", $nameRegex,$names);
echo "Your name: $names[3], $names[2] $names[1] <br />";
echo "Your phone Number: $matches[1]-$matches[2]-$matches[3] <br />";
}
?>
答案 0 :(得分:1)
试
$match = preg_match("/(\d{3})(\d{3})(\d{4})/", $phoneDashes,$matches);
if($match) {
echo "Valid phone number <br />";
}
else {
echo "Not a valid phone number <br />";
}
答案 1 :(得分:0)
您需要^
和$
个锚点。试试这个:
if (preg_match('/^(\d{3})(\d{3})(\d{4})$/', $phoneDashes, $matches))
// Valid phone number
else
// Not valid phone number