【问题标题】:check 10 digit mobile number in string using php使用php检查字符串中的10位手机号码
【发布时间】:2018-12-22 11:56:12
【问题描述】:

我想使用 php 检查以下字符串中的 10 位数字

$str1 = "when an unknown 8109100000 remaining essentially unchanged.";
$str2 = "when an unknown remaining essentially unchanged.";

当找到 10 位数字时返回 true

【问题讨论】:

    标签: php


    【解决方案1】:

    为了只匹配精确的 10 位数字,您需要在正则表达式模式中将 {}\b 结合起来。
    {} 指定位数,\b 表示匹配完整的单词。

    在这个例子中,只有最后一个字符串应该返回 true/1。

    $str = ["when an unknown 810910000011 remaining essentially unchanged.",
            "when an unknown remaining essentially unchanged.",
            "when an unknown 8109100000 remaining essentially unchanged."];
    
    Foreach($str as $s){
        Echo preg_match("/\b\d{10}\b/", $s) . "\n";
    }
    

    然后输出

    0
    0
    1
    

    如预期的那样

    https://3v4l.org/QesPA

    【讨论】:

      【解决方案2】:

      您可以使用 preg_match

      代码

          $str1 = "when an unknown 8109100000 remaining essentially unchanged.";
          $str2 = "when an unknown remaining essentially unchanged.";
          $pattern = "/\b\d{10}\b/";
          $isNum = preg_match($pattern,$str1, $match); //return 1 $str2 return 0.
          if($isNum){
           //Do something
          }
          else{
          //Aww.... No number in string.
          }
      echo $match[0]; //return matched number.
      

      Demo

      阅读更多关于preg_match Regex

      【讨论】:

      • 此模式对 10+ 位返回 true,而不仅仅是 10 位。 3v4l.org/nYRbD
      • @Andreas \b 边界已添加。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多