PHP检查字符串中一行中的多个数字

PHP检查字符串中一行中的多个数字,php,Php,我想检查用户是否将他们的电话号码放入字符串中 只需检查一行中的6个数字(数字) 在PHP中实现这一点的最佳方法是什么 示例字符串: 诸如此类的废话55376和诸如此类的废话试试这个 $str = "blah blah553376and blah"; preg_match('!\d+!', $str, $matches);//You can use preg_match('!\d{6,}!', $str, $matches); also if(isset($matches[0]) &&am

我想检查用户是否将他们的电话号码放入字符串中

只需检查一行中的6个数字(数字)

在PHP中实现这一点的最佳方法是什么

示例字符串:

诸如此类的废话55376和诸如此类的废话

试试这个

$str = "blah blah553376and blah";
preg_match('!\d+!', $str, $matches);//You can use preg_match('!\d{6,}!', $str, $matches); also
if(isset($matches[0]) && is_numeric($matches[0]) && strlen(trim($matches[0])) >= 6){
  echo $matches[0];
}

有几种方法可以解决此问题:

  • 正如其他一些人指出的,正则表达式解决方案。我绝对不是正则表达式专家,但这似乎有效:

    $input_line="blah blah553376and blah";
    $regex_line="/([a-z 0-9]*)([0-9]{6})([a-z 0-9]*)/i";
    $output_array=Array();
    preg_match($regex_line, $input_line, $output_array);
    if($output_array[2])
    {
        echo("number is:  ". $output_array[2]);
    }
    else
    {
        echo("number not found");
    }
    
  • 穷举迭代法:

    $input_line="blah blah553376and blah";
    
    $output_string="";
    for($i=0; $i<strlen($input_line);$i++)
    {
        $current_character = substr($input_line,$i,1);
        if(is_numeric ( $current_character ))
        {
            $output_string .= $current_character;
        }
        else
        {
            //reset output
            $output_string="";
        }
    
        if(strlen($output_string) >=6)
        {
            //bail out if requirements are met.
            break;
        }
    }
    if($output_string)
    {
        echo("number is:  " . $output_string);
    }
    else
    {
        echo("number not found");
    }
    
    $input_line=“blah blah553376和blah”;
    $output_string=“”;
    对于($i=0;$i=6)
    {
    //如果符合要求,则进行纾困。
    打破
    }
    }
    if($output\u string)
    {
    echo(“编号为:”.$output_字符串);
    }
    其他的
    {
    回音(“未找到号码”);
    }
    
  • 我相信还有其他更好的方法,但以上只是我头脑中的两个简单方法


  • 为什么不干脆
    \d{6,}
    ?让他们先试试。。用户未显示任何代码..:-/但这并不意味着我的答案是错误的@SyedQarib。如果问题需要改进,那么你可以添加评论或标记它,或者一旦你赢得足够的声誉,你可以投票结束问题。非常感谢-下次我会写一个更好的问题。。。感谢:)欢迎@Adam.:-)下次当你发布问题时,请展示你的努力。其他问题似乎离题了,因为“我如何做这件武断的事”不是一个真正的问题。我认为合法的问题也很有帮助