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

不是一个完整的答案,但在您的第一个示例中, [ ] 中的句点实际上与字符 匹配。没有什么。因此,如果您将其更改为:

/^.+$/

它可能会更好。

在第二个示例中,您应该使用花括号 { } 而不是括号来指定长度。像这样:

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

不过最后一张看起来不错。但是通过修复前两个,您至少可以开始找到问题的根源!

于 2012-07-11T16:41:19.373 回答
0

^和分别匹配整个字符串的$开头和结尾,而不仅仅是单行。

于 2012-07-11T10:42:04.577 回答
0

不明白为什么你需要正则表达式,除非我遗漏了一些东西。

可能的一种方法是将被屏蔽的卡号作为纯文本输出,并为新卡号提供一个文本框。

当表单提交时,如果该字段为空,则只是unset保存前的数组键,所以现有的卡值保持不变。

如果有新号码,您可以根据需要进行更新。

于 2012-07-11T11:11:52.157 回答