如何使用preg_match获取第一个数字字符?

时间:2012-07-10 11:45:01

标签: php

我有电话号码。如果数字的第一个数字字符不是1,我需要添加它。我不知道如何用preg_match来做,或者还有其他方法吗?

$first_number = $number;
if(preg_match('something', $first_number, $result))
{
$first_number = '1'. $result[1];
}

4 个答案:

答案 0 :(得分:3)

这里没有必要去正则表达式。你可以这样做:

if($first_number[0] != '1') {
    $first_number = '1'.$first_number;
}

但如果号码可以有前导空格或+符号,则可以执行以下操作:

if(preg_match('/^(\D*)(\d)/',$first_number,$match))
    $first_number = $match[1].'1'.$match[2];
}

答案 1 :(得分:2)

如果我正确地阅读你的问题,那么第一个非数字字符并不总是在数组中的第1位。

$n="foo 415";
preg_match("/^[^0-9]*([0-9])/", $n, $matches);
print $matches[0]."\n";'

返回4

答案 2 :(得分:1)

此处无需使用preg_matchpreg_replace,以下简单解决方案即可使用

if ($number[0] != 1)
{
  $number.= '1'. $number;
}

答案 3 :(得分:0)

使用

'/^([^1][0-9]+)$/'

它应该做的伎俩!