2

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

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

4 回答 4

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];
}
于 2012-07-10T11:48:20.367 回答
2

如果我正确阅读您的问题,第一个非数字字符并不总是位于数组中的第 1 位。

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

返回4

于 2012-07-10T11:54:38.910 回答
1

无需使用preg_matchpreg_replace在这里,下面的简单解决方案应该可以工作

if ($number[0] != 1)
{
  $number.= '1'. $number;
}
于 2012-07-10T11:47:33.427 回答
0

利用

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

它应该可以解决问题!

于 2012-07-10T11:48:05.107 回答