PHP数字字符串掩码

时间:2018-08-23 06:40:38

标签: php

您好如何将字符串-> 9123456789转换为->(+639)123456789。我正在使用PHP。

$value = '9123456789';

function numberMask($value) 
{
     return $value
}

我要以以下格式返回值:(+639)123456789

4 个答案:

答案 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);

Live Demo

输出:

(+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