我正在研究一个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相关问答推荐

将 SHA512 哈希函数从 Classic Asp 转换为 php/Laravel

无法过滤过去 30 天的 SQL 数据

函数 hide_payment_gateways_based_on_weight 的严重未捕获错误

仅在第一个轮播单元格上添加课程(轻弹)

Yii2 ActiveRecord 建议按照自己的逻辑调用父构造函数.这不是很奇怪吗?

PHP - 如何比较罗盘上的两个标题?

将 m3u8 播放列表文件转换为 XML 列表

如何验证没有要验证的特定属性的发布请求

在第一个不是价格小数点或字符串最后一个字符的句点处拆分字符串

使用 PHP 判断 gmail 收件箱中的新邮箱

不推荐使用带有花括号的数组和字符串偏移访问语法

PHP Carbon,获取日期范围之间的所有日期?

更新到 v4.8.0 后 phpMyAdmin 出错:$cfg['TempDir'] (./tmp/) 不可访问

Composer 要求内存不足. PHP致命错误:允许的内存大小为1610612736字节已用尽

无法通过composer 安装 laravel 安装程序

配置:错误:请重新安装 libzip 发行版

laravel 5.3 新的 Auth::routes()

仅从 Laravel 集合中获取特定属性

在 Ubuntu 上的 php 5.6 上安装 php-zip

是否可以在 PHP 7 上指定多种返回类型?