Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式验证不起作用(电话和姓名)_Php_Regex_Validation - Fatal编程技术网

Php 正则表达式验证不起作用(电话和姓名)

Php 正则表达式验证不起作用(电话和姓名),php,regex,validation,Php,Regex,Validation,即使我输入了无效的电话号码,我的正则表达式也会验证它并显示有效的消息。你知道怎么回事吗 <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" va

即使我输入了无效的电话号码,我的正则表达式也会验证它并显示有效的消息。你知道怎么回事吗

<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 />";

}

?>


试试看

$match=preg_match(“/(\d{3})(\d{3})(\d{4})/”,$phoneDashes,$matches);
如果($match){
回显“有效电话号码
”; } 否则{ echo“不是有效的电话号码
”; }
试试看

$match=preg_match(“/(\d{3})(\d{3})(\d{4})/”,$phoneDashes,$matches);
如果($match){
回显“有效电话号码
”; } 否则{ echo“不是有效的电话号码
”; }
您需要
^
$
锚。试试这个:

if(preg_match('/^(\d{3})(\d{3})(\d{4})$/',$phoneDashes,$matches))
//有效电话号码
其他的
//电话号码无效

您需要
^
$
锚。试试这个:

if(preg_match('/^(\d{3})(\d{3})(\d{4})$/',$phoneDashes,$matches))
//有效电话号码
其他的
//电话号码无效

if语句中使用了什么字符串?电话号码字符串?这就是问题所在吗?不,您使用了什么值来得到错误的结果?您在
if
语句中使用了什么字符串?电话号码字符串?这就是问题所在吗?不,你用什么值得到了错误的结果?嗯。。不,那也不行。不管我输入什么,上面都写着有效数字。还有什么建议吗?谢谢你的帮助,太棒了。是的,它有效。你愿意帮我解决我的另一个php问题吗?如果你感兴趣的话,我愿意给你出个价。给我你的skype/邮件给你发送了一封电子邮件。您可以立即删除您的电子邮件(评论)。。不,那也不行。不管我输入什么,上面都写着有效数字。还有什么建议吗?谢谢你的帮助,太棒了。是的,它有效。你愿意帮我解决我的另一个php问题吗?如果你感兴趣的话,我愿意给你出个价。给我你的skype/邮件给你发送了一封电子邮件。您现在可以删除您的电子邮件(评论)
$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 />";
}