php手机号码判断

手机号码

13311221133,一个正确的手机号码应该是什么样?

(1)必须是11位:如何计算字符串的长度

(2)第1位必须是1:如何取得第1位

(3)第2位只能在3-9:同上,并且如何与3-9的范围作比较

(4)所有位(后9位)必须是数字:0-9,对每一位进行判断

(5)不同号段的第3位是有要求的,此处不专门考虑

 <?php
 // 13812345678,一个正确的手机号码应该是什么样?
 // (1)必须是11位:如何计算字符串的长度
 // (2)第1位必须是1:如何取得第1位
 // (3)第2位只能在3-9:同上,并且如何与3-9的范围作比较
 // (4)所有位(后9位)必须是数字:0-9,对每一位进行判断
     
 $phone = "13812345678";
 $len = strlen($phone);
 if ($len != 11) {
     echo "长度必须为11位.<br/>";
 }
 if ($phone[0] != 1) {
     echo "第1位必须为1.<br/>";
 }
 // if (!($phone[1] >= 3 && $phone[1] <= 9)) {
 if ($phone[1] < "3" || $phone[1] > "9") {
     echo "第2位必须为3-9.<br/>";
 }
 // 可以使用ASCII码进行数字比较,非常严谨
 // if (ord($phone[1]) < 51 || ord($phone[1]) > 57) {
 //     echo "第2位必须为3-9.<br/>";
 // }
 // 或者使用(int)强制转换数据类型, (int)$phone[1],再与数字进行比较
 $isNumber = true;
 for ($i=2; $i<11; $i++) {
     if ( ! ($phone[$i] >= "0" && $phone[$i] <= "9")) {
         $isNumber = false; 
         break;
     }
 }
 if (!$isNumber) {
     echo "后9位必须是数字.<br/>";
 }
 ?>

ASCII码表:

image-20210908121311939

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值