首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP中使用Regex格式化和替换电话号码

在PHP中使用Regex格式化和替换电话号码
EN

Stack Overflow用户
提问于 2014-09-03 23:02:20
回答 2查看 1.3K关注 0票数 0

我正在尝试验证用户注册/编辑表单上的电话号码。有两个字段:电话号码1和电话号码2。它们可能会填写,也可能不填写。如果它们被填充,我将不得不提取它的数字,并使用正则表达式,正确地格式化它并显示它,以便用户可以编辑。问题是我是一个初学者,我不能格式化它。下面是代码:

代码语言:javascript
运行
复制
if (!empty($phone_1 )) {
    $string = $phone_1;
    $newString = preg_replace('/[^0-9]/i', '', $string); //extract numbers

    $regex = '^(11 [9][0-9]{4}-[0-9]{4})|(\(1[2-9]\) [5-9][0-9]{3}-[0-9]{4})|(\      ([2-9][1-9]\) [5-9][0-9]{3}-[0-9]{4})$';
    $final = preg_replace($regex, '', $newString);
  }

我尝试输出的格式是"99 99999.9999“。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-09-03 23:07:21

为什么不使用sub_str来格式化字符串呢?

代码语言:javascript
运行
复制
$phone1="01234567890";
$phone1 = substr($phone1, 0, 2) . ' ' . substr($phone1, 2, 5) . '.' . substr($phone1, 7, 4);
echo $phone1;

输出:

代码语言:javascript
运行
复制
01 23456.7890
票数 1
EN

Stack Overflow用户

发布于 2014-09-03 23:14:01

如果您想使用正则表达式,您可以使用以下命令:

代码语言:javascript
运行
复制
^(\d\d)(\d{5})(\d{4})$

您可以使用的代码是:

代码语言:javascript
运行
复制
$re = "/^(\\d\\d)(\\d{5})(\\d{4})$/"; 
$str = "01234567890"; 
$subst = '\1 \2.\3'; 

$result = preg_replace($re, $subst, $str, 1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25647701

复制
相关文章

相似问题

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