您好如何将字符串-> 9123456789转换为->(+639)123456789。我正在使用PHP。
$value = '9123456789';
function numberMask($value)
{
return $value
}
我要以以下格式返回值:(+639)123456789
答案 0 :(得分:0)
如果您始终具有始终以 9 开头的相同长度的字符串,则可以执行以下操作:
function numberMask($value)
{
unset($value[0]);
return '(+639) ' . join(' ', str_split($value, 3));
}
如果字符串可能不是以 9 开头的,则可以执行以下操作:
function numberMask($value)
{
$start = $value[0];
unset($value[0]);
return '(+63' . $start . ') ' . join(' ', str_split($value, 3));
}
答案 1 :(得分:0)
创建这样的函数
$value = '9123456789';
function numberMask($value)
{
$value = array_reverse(str_split(strrev($value),3));
$value[0] = "(+63".$value[0].")";
return implode(" ",$value);
}
echo numberMask($value);
输出:
(+639) 321 654 987
答案 2 :(得分:0)
自从找到问题的答案后,我会回答它。
function numberMask($value)
{
$value = substr($value, 1);
return '(+639) ' . join(' ', str_split($value, 3));
}
echo numberMask(9123456789);
输出为(+639)123456789
答案 3 :(得分:-1)
/**
* 9123456789 to (+639) 123 456 789
* 1. Create a string that does not have first char i.e 123456789
* 2. insert a space after every 3rd char -> 123 456 789
* 3. Append first char i.e -> 9 to mask i.e +63
* 3. format the string to (+639) 123 456 789
*/
function numberMask($value, $mask = '+63')
{
// get the first charecter
$first = $value[0]; var_dump($value, $first);
$value = substr($value, 1);
// space after 3 numbers
$last = join(' ', str_split($value, 3));
return "($mask$first) " . $last;
}
echo numberMask('9123456789'); // (+639) 123 456 789
echo numberMask('9123456789', '+91'); // (+919) 123 456 789