首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将10位数字字符串格式化为电话号码?

如何将10位数字字符串格式化为电话号码?
EN

Stack Overflow用户
提问于 2010-01-19 07:16:37
回答 4查看 58.7K关注 0票数 21

我有10个字符长的字符串形式的数据库记录,例如4085551234。

我希望将它们格式化为以下格式:(408) 555-1234。

我认为这与正则表达式相关。我是编程新手,在这里完全自学,所以任何与执行文本处理相关的资源都将受到欢迎。谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-19 07:21:34

对于这种情况,正则表达式绝对是大材小用了。如果您想获取一个“电话号码”并将其规范化为10位数,那么使用正则表达式将是一个很好的选择。要做你所要求的事情,只需做如下所示:

代码语言:javascript
复制
echo '('.substr($data, 0, 3).') '.substr($data, 3, 3).'-'.substr($data,6);

因为您已经知道如何划分数据,所以可以只使用substr或类似的东西来获取您想要的部分。RegEx对于匹配并不总是具有严格格式的字符串非常有用。(比如可变数量的空格,前后可变的东西,额外的破折号,等等)。但是在本例中,输入始终是严格格式化的10位数字,没有其他内容,因此格式化它不需要额外的RegEx开销。

票数 98
EN

Stack Overflow用户

发布于 2010-01-19 07:20:08

看看这里:Format phone number

代码语言:javascript
复制
function format_phone($phone)
{
    $phone = preg_replace("/^\d/", "", $phone);

    if(strlen($phone) == 7)
        return preg_replace("/(\d{3})(\d{4})/", "$1-$2", $phone);
    elseif(strlen($phone) == 10)
        return preg_replace("/(\d{3})(\d{3})(\d{4})/", "($1) $2-$3", $phone);
    else
        return $phone;
}
票数 21
EN

Stack Overflow用户

发布于 2010-01-19 07:23:20

我可能会选择

代码语言:javascript
复制
$num = "4085551234";  // given                                                  
$formatted = "(".substr($num,0,3).") ".substr($num,3,3)."-".substr($num,6);

正则表达式在这里并不是很合适。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2089923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档