【发布时间】:2015-08-09 07:01:01
【问题描述】:
我有一个带有电话号码的字符串,我需要将其从一种格式转换为另一种格式。
例子:
"02030266079" => "0203 026 6079"
我试过了:
$num = "02030266079";
$transformed= preg_replace("/^(/d{4})(/d{3})(/d{4})$/", "$1 $2 $3", $num);
但是什么也没发生!
【问题讨论】:
-
此外,作为起点,您必须定义明确的规则如何进行转换。一个例子在这里是不够的。特别是因为很可能需要知道在哪里放置这些空间。关于序列的哪一部分是区号等的知识。这不是小事。
-
首先解释定义格式的模式 - 例如。国际拨号代码+本地拨号代码+号码
-
对不起。我是这个网站的新手,我保证下次会提出更好的问题。
-
@user2546940 没问题,下次你应该尝试一下。这里
preg_replace('~(?<=^\d{4})|(?=\d{4}$)~', ' ', $str);是这个问题的答案。
标签: php regex string formatting phone-number