我正在研究一个SMS app,需要能够将发送者的电话号码从+11234567890转换为123-456-7890,这样就可以将其与MySQL database中的记录进行比较.

这些数字以后一种格式存储,供网站上其他地方使用,我不想更改这种格式,因为它需要修改大量代码.

How would I go about this with PHP?

谢谢

推荐答案

$data = '+11234567890';

if(  preg_match( '/^\+\d(\d{3})(\d{3})(\d{4})$/', $data,  $matches ) )
{
    $result = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
    return $result;
}

Php相关问答推荐

如何在PHP中将浮点数转换为其IEEE754十六进制字符串?

PHP Perl正则表达式—URL前面没有等号和可能的单引号或双引号

在Woocommerce变量产品中的标签附近显示所选属性选项名称

Mysqli_stmt::Execute():结果字段元数据中存在过早的EOF

保存PHP条带以备将来使用,不显示用户界面

无法在Laravel/Vue停靠容器中启动MySQL

在WooCommerce产品中按类型对产品属性术语进行分类以供显示

Mod_重写子目录中相应的php文件

Laravel:如何展平多维Eager 加载的集合

PHP按另一个二维数组的排序顺序对二维数组进行排序

使用简码在 WooCommerce 我的帐户中显示一些用户数据

需要以一种形式执行两个操作

使用 foreach php 将记录正确分配给正确的父级

PHP 中的 libgd 无法读取 Apache 配置中的 SetEnv GDFONTPATH

在WooCommerce购物车和 checkout 页面中更改总计文本

在 Symfony 测试中何时使用 TestCase 而不是 KernelTestCase

php/html OnSubmit 禁用输入类型提交未给出预期结果

PHP 日期格式:ISO8601 与 ISO8601_EXPANDED

Laravel 查询关系是否为 bool

构建 [Controller] 时目标 [Interface] 不可实例化