我正在想办法将电话号码转换为
格式+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');