📜  带破折号功能的php格式电话号码 - PHP(1)

📅  最后修改于: 2023-12-03 15:09:46.175000             🧑  作者: Mango

带破折号功能的PHP格式电话号码

在开发中,经常需要对电话号码进行格式化,更常见的是在输入电话号码时,自动加上横杠破折号来方便用户查看。在PHP中,可以通过正则表达式和字符串函数来实现这一功能。

正则表达式

我们可以通过正则表达式来匹配电话号码中需要加上横杠的位置,然后将字符串按照这些位置进行分割,并在分割后的字符串之间加上破折号。

function formatPhoneNumber($phoneNumber){
    // 匹配电话号码中需要加上横杠的位置
    $pattern = '/^(\d{3})(\d{4})(\d{4})$/';
    // $matches[1]、$matches[2]、$matches[3] 分别表示匹配到的三个数字
    if (preg_match($pattern, $phoneNumber, $matches)) {
        // 将字符串按照这些位置进行分割,并在分割后的字符串之间加上破折号。
        $formattedPhoneNumber = $matches[1] . '-' . $matches[2] . '-' . $matches[3];
        return $formattedPhoneNumber;
    }
    return false;
}
字符串函数

另外一种实现方法是通过字符串函数来实现。我们可以使用substr函数来截取字符串中需要加上破折号的位置,然后再将截取后的字符串之间加上破折号。

function formatPhoneNumber($phoneNumber){
    // $phoneNumber必须是11位数字的字符串
    $phoneNumber = trim($phoneNumber);
    if(strlen($phoneNumber) == 11 && is_numeric($phoneNumber)){
        $formattedPhoneNumber = substr($phoneNumber, 0, 3) . '-' . substr($phoneNumber, 3, 4) . '-' . substr($phoneNumber, 7, 4);
        return $formattedPhoneNumber;
    }
    return false;
}

注意,以上代码只适用于11位数字的电话号码。

返回的markdown格式:

# 带破折号功能的PHP格式电话号码

在开发中,经常需要对电话号码进行格式化,更常见的是在输入电话号码时,自动加上横杠破折号来方便用户查看。在PHP中,可以通过正则表达式和字符串函数来实现这一功能。

## 正则表达式

我们可以通过正则表达式来匹配电话号码中需要加上横杠的位置,然后将字符串按照这些位置进行分割,并在分割后的字符串之间加上破折号。

```php
function formatPhoneNumber($phoneNumber){
    // 匹配电话号码中需要加上横杠的位置
    $pattern = '/^(\d{3})(\d{4})(\d{4})$/';
    // $matches[1]、$matches[2]、$matches[3] 分别表示匹配到的三个数字
    if (preg_match($pattern, $phoneNumber, $matches)) {
        // 将字符串按照这些位置进行分割,并在分割后的字符串之间加上破折号。
        $formattedPhoneNumber = $matches[1] . '-' . $matches[2] . '-' . $matches[3];
        return $formattedPhoneNumber;
    }
    return false;
}
字符串函数

另外一种实现方法是通过字符串函数来实现。我们可以使用substr函数来截取字符串中需要加上破折号的位置,然后再将截取后的字符串之间加上破折号。

function formatPhoneNumber($phoneNumber){
    // $phoneNumber必须是11位数字的字符串
    $phoneNumber = trim($phoneNumber);
    if(strlen($phoneNumber) == 11 && is_numeric($phoneNumber)){
        $formattedPhoneNumber = substr($phoneNumber, 0, 3) . '-' . substr($phoneNumber, 3, 4) . '-' . substr($phoneNumber, 7, 4);
        return $formattedPhoneNumber;
    }
    return false;
}

注意,以上代码只适用于11位数字的电话号码。