繁体   English   中英

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

[英]Format and replace a phone number using Regex in PHP

我正在尝试在用户注册/编辑表单上验证电话号码。 有两个字段:电话号码1和电话号码2。它们可能会填满,也可能不会填满。 如果它们满了,我将必须提取其数字,并使用正则表达式正确设置其格式并显示它,以便用户进行编辑。 问题是我是一个初学者,并且无法对其进行格式化。 下面是代码:

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”。

谢谢。

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

$phone1="01234567890";
$phone1 = substr($phone1, 0, 2) . ' ' . substr($phone1, 2, 5) . '.' . substr($phone1, 7, 4);
echo $phone1;

输出:

01 23456.7890

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

^(\d\d)(\d{5})(\d{4})$

工作演示

在此处输入图片说明

您可以使用的代码是:

$re = "/^(\\d\\d)(\\d{5})(\\d{4})$/"; 
$str = "01234567890"; 
$subst = '\1 \2.\3'; 

$result = preg_replace($re, $subst, $str, 1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM