即使我键入一个无效的电话号码,我的正则表达式也会对它进行验证并显示有效的消息。你知道哪里出错了吗?
<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 />";
}
?>
try
$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 />";
}
您需要^
和$
锚。试试这个:
if (preg_match('/^('d{3})('d{3})('d{4})$/', $phoneDashes, $matches))
// Valid phone number
else
// Not valid phone number