0

ユーザーの請求情報の更新セクションを作成しています。現在、マスクされたクレジットカード番号をフォームに渡しています。請求先住所などを更新するだけの場合は、ユーザーがクレジットカード情報を更新する必要はありません。

マスクされたクレジットカードと一致するように正規表現を使用しようとしていますが、一致する正規表現パターンを取得できませんでした... 100%ワイルドカードでも...

これが私が試したことのいくつかの例です...

================================================== ==============

マスクされたクレジットカードの値はXXXXXXXXXXXX0012です

================================================== ==============

'creditcard' => array(
         'creditcard' => array(
            'rule' => array('cc', 'all', false, '^[.]+$'),
            'message' => 'Required',
            'allowEmpty' => false,
            'required' => true,
            ),
    ),

================================================== ==============

    'creditcard' => array(
        'creditcard' => array(
            'rule' => array('cc', 'all', false, '/^[X]+[0-9](4,)$/'),
            'message' => 'Required',
            'allowEmpty' => false,
            'required' => true,
            ),
    ),

================================================== ==============

    'creditcard' => array(
        'creditcard' => array(
            'rule' => array('cc', 'all', false, '/^[x]+[0-9]+$/i'),
            'message' => 'Required',
            'allowEmpty' => false,
            'required' => true,
            ),
    ),

どんなアイデアも大歓迎です!

ありがとうございました!!

4

3 に答える 3

2

完全な答えではありませんが、最初の例では、[]内のピリオドは実際には文字と一致します。何もない。したがって、これを次のように変更すると、次のようになります。

/^.+$/

おそらくうまくいくでしょう。

2番目の例では、長さを指定するために括弧の代わりに中括弧{}を使用する必要があります。そのようです:

/^[X]+[0-9]{4,}$/

最後のものは良さそうです。しかし、最初の2つを修正することで、少なくとも問題の原因を見つけることができるかもしれません。

于 2012-07-11T16:41:19.373 に答える
0

^とは$、個々の行だけでなく、文字列全体の最初と最後にそれぞれ一致します。

于 2012-07-11T10:42:04.577 に答える
0

私が何かを見逃していない限り、なぜこれに正規表現が必要なのかわかりません。

おそらく、これを行う1つの方法は、マスクされたカード番号をプレーンテキストとして出力し、新しいカード番号のテキストボックスを提供することです。

フォームを送信するときに、このフィールドが空の場合は、unset保存する前に配列キーだけを入力するため、既存のカードの値は変更されません。

新しい番号がある場合は、必要に応じて更新できます。

于 2012-07-11T11:11:52.157 に答える