【发布时间】:2011-08-15 16:40:17
【问题描述】:
好吧,假设我的电话号码存储在我的表中:
“0008675309”
我显然不想这样显示它,我想在调用它时将其格式化为:
(000)867-5309
用 / - 或 .以便我以后可以拆分它?还是可以按字符数拆分?
【问题讨论】:
好吧,假设我的电话号码存储在我的表中:
“0008675309”
我显然不想这样显示它,我想在调用它时将其格式化为:
(000)867-5309
用 / - 或 .以便我以后可以拆分它?还是可以按字符数拆分?
【问题讨论】:
处理任何这些格式的电话号码的性能成本和代码都很简单,因此完全取决于您的偏好。要回答您的问题,使用 substr 函数很容易获取前三个字符、后三个字符和后四个字符。
【讨论】:
如果您只存储北美电话号码(10 位数字),那么正如@mellamokb 所说,无论哪种方式都可以。如果您可能要存储国际号码,则应尽早(如果可能)尽可能多地捕捉细节,因为以后可能很难知道如何标点号码。
【讨论】:
将 preg_split 与 PREG_SPLIT_NO_EMPTY 一起使用
【讨论】:
其他答案完全正确。如果您想要它的实际代码,我认为以下应该可以解决问题(索引可能会偏离一个糟糕!):
$phone_number="0008675309"
$phone_number=substr_replace($phone_number, "(", 0, 0);
$phone_number=substr_replace($phone_number, ")", 4, 0);
$phone_number=substr_replace($phone_number, "-", 8, 0);
【讨论】:
这是一个可以做你想做的事情的班轮:
$phone = preg_replace('^(\d{3})(\d{3})(\d{4})$', '($1)$2-$3', $phone);
如果输入格式不匹配(国际号码),它不会更改格式。
【讨论】: