Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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_Validation - Fatal编程技术网

如何最好地基于字符长度验证移动电话号码,从和数字开始使用php

如何最好地基于字符长度验证移动电话号码,从和数字开始使用php,php,validation,Php,Validation,嗨,我有一个移动电话号码字段 我当前正在验证是否为空: <?php if ($_REQUEST['text_message'] && !@$_REQUEST['text_message_mobile']){ $errors[] = "Please enter your mobile number for text messages"; } ?> 我想添加验证,以检查手机号码是否有11个字符长且以07开头 例如,可接受的电话号码为07123

嗨,我有一个移动电话号码字段

我当前正在验证是否为空:

<?php
   if ($_REQUEST['text_message'] && !@$_REQUEST['text_message_mobile']){
      $errors[] = "Please enter your mobile number for text messages";
   }
?>

我想添加验证,以检查手机号码是否有11个字符长且以07开头

例如,可接受的电话号码为07123456789

使用php添加此验证的最佳方式是什么


感谢您的帮助:o)

您可以使用正则表达式执行此操作:

$number = "0711111111111";
$pattern = "/^07[0-9]{9}$/";
echo preg_match($pattern, $number);
此表达式将匹配任何以“07”开头,后跟9个数字的字符串。

看看
isset
empty
如何响应您使用的变量

使用,这样您就可以知道数字是否有11个字符长

使用,这样就可以避免像“07DSAJDLSAJDK”这样的输入

使用,这样您就可以知道数字开头是否有07

这是或多或少应该如何看待结尾的:

<?php
   if(!isset($_REQUEST['text_message']) || empty($_REQUEST['text_message'])) {
      //Here is null or undefined or an empty string
      $errors[] = "Please enter your mobile number for text messages";
   }

   if(!is_numeric($_REQUEST['text_message'])) {
      $errors[] = "Please provide a valid number";
   }

   if(strlen($_REQUEST['text_message']) !== 11) {
      //Here is not 11 characters long
      $errors[] = "Please provide 11 character number";   
   }

   if(substr($_REQUEST['text_message'], 0, 2) !== "07") {

      $errors[] = "Please provide number with 07 in the first two digits";   
   }   


   if(count($errors) > 0) {

      echo "Resolve this errors: ";
      print_r($errors);
   }
   else {
      echo "You did everything perfect";
   }
?>

我不知道PHP但我可以用html和javaScript提供解决方案
以下是演示代码:

<html>
<head>
<script>
function validate(){
var reg = new RegExp("^07[0-9]{9}$");
var mobile = document.getElementById("t1").value;
if(!reg.test(mobile))
{

alert("Invalid mobile number");
return false;

}
}
</script>
</head>
<body>
Mobile:<input id ="t1" type="text" maxlength = "11" />
<input type="button" value ="check" onclick="validate()" />
</body>
</html>

函数验证(){
var reg=newregexp(“^07[0-9]{9}$”;
var mobile=document.getElementById(“t1”).value;
如果(!注册测试(移动))
{
警报(“无效手机号码”);
返回false;
}
}
流动电话:
它使用正则表达式并使用test函数进行检查
希望有帮助。

删除
@
并使用
isset($\u REQUEST['text\u message\u mobile'])
。替换
@$_使用
请求['..]
!isset($\u REQUEST['…']
;这样看起来更干净。使用
strlen($\u REQUEST['text\u message\u mobile'])==11
也可以使用
substr(text\u message\u mobile,0,2)=='07'
我不明白他们为什么投了反对票这里问的是什么问题这看起来很好,我会试一试,让你知道我进展如何。这将允许
07abcdefghi
啊,是的……忘记了数字验证。希望有一个简单的解决方案?现在编辑数字电话号码验证。谢谢你!这是最好的。