PHP-使用Regex更改电话号码格式


PHP - Changing Phone Number Format with Regex

我正在想办法将电话号码转换为
格式+18761234567
进入
876-123-4567
使用替换Regex。

我认为这应该能在中工作

preg_replace('/^'+1('d{3})('d{3})('d{4})$/i', '$1-$2-$3', '+18761234567');

我假设+1是常量,然后使用'd快捷方式来匹配十进制字符。{}中的值是要匹配的字符数。

此外,互联网上还有一个Regexp库。这可能会有所帮助。

搜索"电话":

http://www.regexlib.com/Search.aspx?k=phone&c=-1&m=-1&ps=20

我知道它不是regex,但它也能工作:-)

$num = '+18761234567';
$formatted = substr($num, 2, 3).'-'.substr($num, 5, 3).'-'.substr($num, 8);

这假设有2个字符a开头可以忽略。

preg_replace("/([0-9a-zA-Z+]{2})([0-9a-zA-Z]{3})([0-9a-zA-Z]{3})([0-9a-zA-Z]{4})/", "$2-$3-$4", '+18761234567');