php - 在php中拆分电话号码

标签 php css

好的,我有一个包含字符串 (407)888-9999 的变量 $phone,我有这个代码

 if($phone != ''){ $phone = "<span id='telephone'>{$phone}</span>";}
return $phone;

这工作正常,但现在客户希望在区号和接下来的三个数字之间有一些填充。所以我需要代码是这样的

<span id='telephone'><span class='spacer'>(407)</span>888-9999</span>";

最佳答案

鉴于没有其他人提到这一点,我会从数字中删除所有非数字字符。完成后,您可以使用正则表达式轻松获取数字,这样任何格式都是有效的,并且几乎无论用户输入什么,您都可以按照自己的意愿进行格式化:

$phone = preg_replace("~[^0-9]~", "", $phone);
preg_match('~([0-9]{3})([0-9]{3})([0-9]{4})~', $phone, $matches);

if (!empty($matches)) {
    $display = "<span id='telephone'><span class='spacer'>(" . 
                $matches[1] . ")</span>" . $matches[2] . "-" . $matches[3] . "</span>";
}else {
    $display = "An invalid phone number was entered.";
}

只要有 10 位数字,无论如何输入电话号码都应该这样做。

更新

您也可以将 preg_replace 技术与 substr 一起使用,而无需 preg_match。这实际上是我的首选解决方案。

$phone = preg_replace("~[^0-9]~", "", $phone);

if (strlen($phone) == 10) {
    $display = "<span id='telephone'><span class='spacer'>(" . 
                substr($phone,0,3) . ")</span>" . substr($phone,2,3) . "-" . substr($phone,5,4) . "</span>";
}else {
    $display = "An invalid phone number was entered.";
}

关于php - 在php中拆分电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761237/

相关文章:

html 输入按钮 onclick=display :None

java - 如何创建 Vaadin 多行按钮

forms - 尝试理解 CSS 链

php - jQuery 手机 : Two/three column vertical control group of radio buttons

php - 如何以数组形式将数据存储在数据库中

php - 如何在php中包含js文件?

php - 使用 php 从 Google 文档中读取内容

PHP/甲骨文 : Time representation

php - json - 括号问题

javascript - 确定各种标签的默认浏览器样式