繁体   English   中英

PHP - 使用正则表达式更改电话号码格式

[英]PHP - Changing Phone Number Format with Regex

我正在试图弄清楚如何转换格式的电话号码
18761234567

876-123-4567
使用替换正则表达式。

我认为这应该有效

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

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

此外,Internet上还有一个Regexp Library。 它可能会有所帮助。

搜索“手机”:

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

我知道这不是正则表达式,但这也有效:-)

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

这假设开头要忽略2个字符。

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');

暂无
暂无

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

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