我有電話號碼。如果數字的第一個數字字符不是1,我需要添加它。我無法找到如何使用preg_match做到這一點,或者有其他方法嗎?如何獲得preg_match的第一個數字字符?
$first_number = $number;
if(preg_match('something', $first_number, $result))
{
$first_number = '1'. $result[1];
}
我有電話號碼。如果數字的第一個數字字符不是1,我需要添加它。我無法找到如何使用preg_match做到這一點,或者有其他方法嗎?如何獲得preg_match的第一個數字字符?
$first_number = $number;
if(preg_match('something', $first_number, $result))
{
$first_number = '1'. $result[1];
}
有沒有必要去正則表達式在這裏。你可以這樣做:
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][0-9]+)$/'
它應該做的伎倆!
的第一個非數字字符並不總是在位置1的陣列中,如果我正在閱讀你的問題。
$n="foo 415";
preg_match("/^[^0-9]*([0-9])/", $n, $matches);
print $matches[0]."\n";'
返回4
。
如果這是個問題,Ghoti的答案是有效的。如果問題是隻有數字不是以'1'開頭才能匹配一個數字,那麼我的答案就會起作用。選一個 ;-) – 2012-07-10 12:22:22
您是否試圖確定字符串的第一個字符是否爲1,或者字符串中的第一個數字字符是否是1?即「+46010398765」可能是瑞典的電話號碼。你如何處理它? – ghoti 2012-07-10 11:49:36
瑞典數字可能不是最好的例子。我在北美,所以技術上我的電話號碼以「+1」開頭。所以「+」是第一個字符,因此應該預設一個「1」? – Graham 2012-07-10 12:03:37