我有一个称为"contacts"的自定义帖子类型和一个名为"phone_number"的元框输入。
这些电话号码有很多不同的输入方式:即1234567890/123-456-7890/(123)456-7890/1-123-456-7890/等。
我想添加一个函数,删除所有空格、括号和短划线,并生成一个10位字符串或11位字符串(用于开头带有+1国家/地区代码的长途数字)。
一旦我将数字简化为10或11位的字符串,我希望它具有相应的格式:10位-123-456-789011位-1-123-456-7890
我发现了另一个提到使用这个的线程:
function format_phone($phone) {
$phone = preg_replace("/[^0-9]/", "", $phone);
if(strlen($phone) == 7)
return preg_replace("/([0-9]{3})([0-9]{4})/", "$1-$2", $phone);
elseif(strlen($phone) == 10)
return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "($1) $2-$3", $phone);
else
return $phone;
}
但我不知道该在哪里添加,也不知道需要更改什么才能满足我的需求。
要替换任何不是数字的东西,可以使用:
$phone = preg_replace("/[^'d]*/","", $phone);
但是很抱歉我不能帮你使用WordPress。我想有一个挂钩后提交?
function format_phone($phone) {
$phone = preg_replace("/[^0-9]/", "", $phone);
if(strlen($phone) == 10)
return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "$1-$2-$3", $phone);
else if(strlen($phone) == 11)
return preg_replace("/([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{4})/", "$1-$2-$3-$4", $phone);
else return false;
}