表示するときに以下のようにクレジットカードをフォーマットしたいのですが、
例えば:
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には組み込み関数はありません。