2013-10-25 175 views
-1

我有一个电话号码与连字符混洗。我想通过删除不需要的连字符并使用php添加必要的连字符将此电话号码转换为美国格式。 例如如何将电话号码转换为美国格式的电话号码?

$phone=123--45-6-4523; 

我想cahnge以上至

$phone=123-456-4523; 
+0

我建议你尝试自己解决你的编码问题。如果他们不工作,请在这里发布您的最佳尝试,并解释您遇到的问题。 – dcaswell

回答

1
$phone="123--45-6-4523"; 
$phone = str_replace("-", "", $phone);// remove all the dashes 
$phone = substr($phone, 0,3) . "-" . // add the two dashes in the right places 
     substr($phone, 3,3) . "-" . substr($phone, 6); 

echo $phone; 

输出

123-456-4523 
0
<?php 
$phone=123--45-6-4523; 
$phone=str_split(str_ireplace('-','',$phone)); 
$c=0; 
$no=''; 
foreach($phone as $a) 
{ 
if($c==2||$c==5) 
$no.='-'; 
$no.=$a 
c++; 
} 
?> 

希望它能帮助。

0
$phone="123--45-6-4523"; 

$phone=str_replace("-","",$phone); 
$american_phone=""; 
for ($i=0;$i<strlen($phone);$i++) 
{ 
$american_phone.=$phone[$i]; 
if ($i==2 || $i==5) 
$american_phone.="-"; 
} 
echo $american_phone; 

我去掉连字符,然后第3和第6位后加2个连字符。我不知道美国的数字。如果您需要别的东西,指定...

0
preg_replace('/^(\d{3})[-]*(\d{3})[-]*(\d{4})$/i', '$1-$2-$3', '123--456-4523'); 

这解决了你的上述情况,但如果有更多的尝试修改正则表达式。