如何使用PHP最好地验证基于字符长度的移动的电话号码,以和数字开头

oxiaedzo  于 2023-03-16  发布在  PHP
关注(0)|答案(3)|浏览(136)

我有一个移动的号码字段。
我当前正在验证是否为空:

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

我想添加验证来检查移动的号码是否为11个字符长并且以07开头。
例如,可接受的电话号码为07123456789。
如何才能最好地使用PHP添加此验证?

6ioyuze2

6ioyuze21#

看一看type comparisions in PHP,看看issetempty如何响应您使用的变量。
使用strln to look at the length of the string,这样就可以知道数字的长度是否为11个字符。
使用is_numeric to check if the variable contains only numbers,这样就可以避免像“07dsajdlsajdks”这样的输入。
使用substr to look at the first two characters of the string,这样就可以知道数字的开头是否是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";
   }
?>
5sxhfpxr

5sxhfpxr2#

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

$number = "0711111111111";
$pattern = "/^07[0-9]{9}$/";
echo preg_match($pattern, $number);

此表达式将匹配以“07”开头且后跟9个数字的任何字符串。

vh0rcniy

vh0rcniy3#

我不知道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>

它使用regular expression并使用test函数进行检查。

相关问题