12

以下のようにマスクしたいクレジットカード番号があります:

$cc = 1234123412341234

echo cc_masking($cc)

1234XXXXXXXX1234

function cc_masking($number) {.....}

これの正規表現を提案してください。

4

12 に答える 12

42

これは次を使用して機能するはずsubstrです:

function ccMasking($number, $maskingCharacter = 'X') {
    return substr($number, 0, 4) . str_repeat($maskingCharacter, strlen($number) - 8) . substr($number, -4);
}
于 2012-11-16T09:39:39.277 に答える
26

使用できますsubstr_replace

$var = '1234123412341234';
$var = substr_replace($var, str_repeat("X", 8), 4, 8);
echo $var;

出力

1234XXXXXXXX1234
于 2012-11-16T09:51:05.117 に答える
12
<?php
echo 'XXXX-XXXX-XXXX-'.substr($cc,-4);
?>
于 2012-11-16T09:40:40.447 に答える
1

正規表現で

function cc_masking( $number, $maskChar = 'X' ) {
    return preg_replace(
        '/^(....).*(....)$/',
        '\1' . str_repeat( $maskChar, strlen( $number ) - 8) . '\2',
        $number );
}

最初の 4 文字 (および最後の 4 文字) を保持し、残りを X に置き換えます。

于 2015-10-13T21:01:29.720 に答える
0

これには正規表現は必要ありません。最初に n 個の数字、最後に n 個の数字を取り、真ん中に X を追加して完成させます。

于 2012-11-16T09:38:47.250 に答える