我如何在字符串行中输出我的相关错误

时间:2017-12-21 06:13:03

标签: php string

如果我有一个像$text = '26061235+1234567,A1227011';这样的字符串行, 我想输出一个短于8个字符或包含非数字字符的字符串。

我的预期输出应为1234567A1227011

1234567因为它长7个字符。 A1227011因为它包含A

这是我写的代码。

   $text = '26061235+1234567,A1227011';
   $splitted = preg_split('/[(or),\+]/', $text);

   $splitted = array_filter($splitted); // remove any empty string
   foreach($splitted as $str)
   {
       if(!is_numeric($str) || strlen($str)<=8)
       {
          $error=preg_replace('/\d+/','',$str);
          echo "this $error is not fine";
        }
   }

但我没有输出结果

2 个答案:

答案 0 :(得分:1)

if(!is_numeric($str) || strlen($str)<=8)
{
      $error=preg_replace('/\d+/','',$de);
      echo "this $error is not fine";
}

为什么你需要preg_replace('/\d+/','',$de);?为什么不呢:

if(!is_numeric($str) || strlen($str)<=8)
{
      echo $str;
}

答案 1 :(得分:0)

$text = '26061235+1234567,A1227011';
$splitted = preg_split('/[(or),+]/', $text);
$splitted = array_filter($splitted); // remove any empty string
foreach($splitted as $str)
   {

       if(!is_numeric($str) || strlen($str)<8)
       {
          $error=preg_replace('/d+/','',$str);
                echo "this $error is not fine<br/>";
        }
   }

输出: -

这1234567不太好

这个A1227011不太好