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_matchまたはpreg_replaceここで、以下の簡単な解決策が機能するはずです

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

使用する

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

それはトリックをする必要があります!

于 2012-07-10T11:48:05.107 に答える