【问题标题】:PHP Check for Multiple Numbers in a Row in a StringPHP 检查字符串中连续的多个数字
【发布时间】:2014-08-06 06:47:37
【问题描述】:

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

只需要连续检查6个数字(数字)。

在 PHP 中最好的方法是什么?

示例字符串:

blah blah553376and blah

【问题讨论】:

  • 这个问题似乎跑题了,因为“我该怎么做这个任意的事情”不是一个真正的问题。
  • 合法问题 IMO。有用的也是stackoverflow.com/q/11023753/1066234

标签: php


【解决方案1】:

试试这个

$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];
}

【讨论】:

  • 为什么不只是\d{6,}
  • 让他们先尝试一下.. 用户没有显示任何代码.. :-/
  • 但这并不意味着我的回答不正确@SyedQarib。如果问题需要改进,您可以添加评论或标记它,或者一旦您获得足够的声誉,您可以投票关闭问题
  • 非常感谢 - 下次我会写一个更好的问题......感谢:)
  • 欢迎@Adam..:-) 下次您发布问题时也请展示您的努力
【解决方案2】:

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

  1. 正如其他人指出的那样,正则表达式解决方案。我绝不是正则表达式专家,但这似乎可行:

    $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");
    }
    
  2. 穷举迭代法:

    $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");
    }
    
  3. 我确信还有其他更好的方法,但以上只是我想到的两种简单方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 2022-11-10
    • 2013-03-29
    • 2022-11-14
    相关资源
    最近更新 更多