我想在显示时像下面这样格式化信用卡,
例如:
1234 4567 9874 1222
作为
1xxx xxxx xxx 1222
Yii 中有这样的格式化功能吗?
我想在显示时像下面这样格式化信用卡,
例如:
1234 4567 9874 1222
作为
1xxx xxxx xxx 1222
Yii 中有这样的格式化功能吗?
不——但使用直接 PHP 并没有错。
如果你总是想要第一个和最后 4 个字符,你可以这样做:
$last4 = substr($cardNum, -4);
$first = substr($cardNum, 0, 1);
$output = $first.'xxx xxxx xxxx '.$last4;
有很多方法可以做到这一点,没有 Yii 特定的你可以使用 str_split(未经测试)来做到这一点:
$string = "1234 4567 1234 456";
$character_array = str_split($string);
for ($i = 1; $i < count($character_array) - 4; $i++) {
if ($character_array[$i] != " "){
$character_array[$i] = "x";
}
}
echo implode($character_array);
你也可以使用preg_replace
:
$card='1234 4567 9874 1222';
$xcard = preg_replace('/^([0-9])([- 0-9]+)([0-9]{4})$/', '${1}xxx xxxx xxxx ${3}', $card);
此正则表达式还将处理连字符。
Yii 没有内置函数。