mx.validators
public class CreditCardValidator
继承CreditCardValidator Inheritance Validator Inheritance EventDispatcher Inheritance Object

CreditCardValidator 类验证信用卡号码的长度是否正确,是否具有正确的前缀,以及是否为指定的卡类型传递 Luhn mod10 算法。此验证程序不检查信用卡是否为实际有效的信用卡帐户。

您可以按两种方式指定 CreditCardValidator 的输入:

为了执行验证,它使用以下指导原则:

长度:

  1. Visa:13 或 16 位数字
  2. MasterCard:16 位数字
  3. Discover:16 位数字
  4. American Express:15 位数字
  5. Diners Club:14 位数字,或者如果它还用作 MasterCard,则为 16 位数字
前缀:
  1. Visa:4
  2. MasterCard:51 到 55
  3. Discover:6011
  4. American Express:34 或 37
  5. Diners Club:300 到 305、36 或 38、51 到 55

MXML 语法expanded隐藏 MXML 语法

The <mx:CreditCardValidator> tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:

  <mx:CreditCardValidator
    allowedFormatChars=" -" 
    cardNumberListener="Object specified by cardNumberSource"
    cardNumberProperty="No default"
    cardNumberSource="No default"
    cardTypeListener="Object specified by cardTypeSource"
    cardTypeProperty="No default"
    cardTypeSource="No default"
    invalidCharError= "Invalid characters in your credit card number. (Enter numbers only.)"
    invalidNumberError="The credit card number is invalid." 
    noNumError="No credit card number is specified."
    noTypeError="No credit card type is specified or the type is not valid." 
    wrongLengthError="Your credit card number contains the wrong number of digits." 
    wrongTypeError="Incorrect card type is specified." 
  />
  

查看示例

另请参见

mx.validators.CreditCardValidatorCardType


公共属性
 属性定义方
  allowedFormatChars : String
cardNumber 字段中允许的格式化字符集。
CreditCardValidator
  cardNumberListener : IValidatorListener
侦听卡号码子字段验证结果的组件。
CreditCardValidator
  cardNumberProperty : String
要验证的卡号码属性的名称。
CreditCardValidator
  cardNumberSource : Object
包含卡号码字段的值的对象。
CreditCardValidator
  cardTypeListener : IValidatorListener
侦听卡类型子字段验证结果的组件。
CreditCardValidator
  cardTypeProperty : String
要验证的卡类型属性的名称。
CreditCardValidator
  cardTypeSource : Object
包含卡类型字段的值的对象。
CreditCardValidator
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedenabled : Boolean
将此值设置为 false 将停止验证程序执行验证操作。
Validator
  invalidCharError : String
cardNumber 字段包含无效字符时的错误消息。
CreditCardValidator
  invalidNumberError : String
信用卡号码无效时的错误消息。
CreditCardValidator
 Inheritedlistener : Object
指定验证侦听器。
Validator
  noNumError : String
cardNumber 字段为空时的错误消息。
CreditCardValidator
  noTypeError : String
cardType 字段为空白时的错误消息。
CreditCardValidator
 Inheritedproperty : String
一个字符串,用于指定包含要验证的值的 source 对象的属性名称。
Validator
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
 Inheritedrequired : Boolean = true
如果为 true,则指定缺少值或空值将导致验证错误。
Validator
 InheritedrequiredFieldError : String
缺少值和 required 属性为 true 时的错误消息。
Validator
 Inheritedsource : Object
指定包含要验证的属性的对象。
Validator
 Inheritedtrigger : IEventDispatcher
指定生成触发验证程序的组件。
Validator
 InheritedtriggerEvent : String
指定触发验证的事件。
Validator
  wrongLengthError : String
cardNumber 字段包含的指定信用卡类型的位数不正确时的错误消息。
CreditCardValidator
  wrongTypeError : String
cardType 字段包含无效信用卡类型时的错误消息。
CreditCardValidator
受保护的属性
 属性定义方
 InheritedactualListeners : Array
[只读 (read-only)] 包含侦听器对象(如果有)的数组或源对象。
Validator
 InheritedactualTrigger : IEventDispatcher
[只读 (read-only)] 包含触发器对象(如果有)或源对象。
Validator
 InheritedresourceManager : IResourceManager
[只读 (read-only)] 引用管理所有应用程序本地化资源的对象。
Validator
 InheritedsubFields : Array
一个字符串数组,其中包含传递到 validate() 方法的 value 对象中所含属性的名称。
Validator
公共方法
 方法定义方
  
构造函数。
CreditCardValidator
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
如果 Validator 是使用 MXML 标签创建的,则由 MXML 编译器自动调用。
Validator
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent
执行验证并(可选)将结果通知给侦听器。
Validator
 Inherited
validateAll(validators:Array):Array
[静态] 调用验证程序数组中的所有验证程序。
Validator
  
[静态] 用于调用验证程序的方便方法。
CreditCardValidator
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
 Inherited
为从验证程序调度的有效和无效事件设置所有侦听器。
Validator
  
覆盖基类 doValidation() 方法以验证信用卡号码。
CreditCardValidator
 Inherited
返回要验证的对象。
Validator
 Inherited
从错误结果数组返回 ValidationResultEvent。
Validator
 Inherited
如果值不为 null,则返回 true。
Validator
 Inherited
断开从验证程序调度的有效和无效事件的所有侦听器的连接。
Validator
 Inherited
构造 Validator 后,每当 ResourceManager 又调度一个“change”事件以指示已通过某种方式更改了本地化资源时,将会调用此方法。
Validator
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
 Inherited在验证失败时调度。Validator
 Inherited在验证成功时调度。Validator
受保护的常量
 常量定义方
 InheritedDECIMAL_DIGITS : String = "0123456789"
[静态] 包含十进制数字 0 到 9 的字符串。
Validator
 InheritedROMAN_LETTERS : String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
[静态] 包含大写和小写罗马字母(“A”到“Z”和“a”到“z”)的字符串。
Validator
属性详细信息
allowedFormatChars属性
allowedFormatChars:String  [读写]

cardNumber 字段中允许的格式化字符集。

默认值为 " -" (space and dash).



实现
    public function get allowedFormatChars():String
    public function set allowedFormatChars(value:String):void
cardNumberListener属性 
cardNumberListener:IValidatorListener  [读写]

侦听卡号码子字段验证结果的组件。如果未进行指定,则使用为 cardNumberSource 属性指定的值。



实现
    public function get cardNumberListener():IValidatorListener
    public function set cardNumberListener(value:IValidatorListener):void
cardNumberProperty属性 
public var cardNumberProperty:String

要验证的卡号码属性的名称。此属性为可选项,但如果指定 cardNumberSource 属性,则应同时设置此属性。

cardNumberSource属性 
cardNumberSource:Object  [读写]

包含卡号码字段的值的对象。如果为此属性指定值,则必须同时为 cardNumberProperty 属性指定值。如果设置 sourceproperty 属性,请不要使用此属性。



实现
    public function get cardNumberSource():Object
    public function set cardNumberSource(value:Object):void
cardTypeListener属性 
cardTypeListener:IValidatorListener  [读写]

侦听卡类型子字段验证结果的组件。如果未进行指定,则使用为 cardTypeSource 属性指定的值。



实现
    public function get cardTypeListener():IValidatorListener
    public function set cardTypeListener(value:IValidatorListener):void
cardTypeProperty属性 
public var cardTypeProperty:String

要验证的卡类型属性的名称。此属性为可选项,但如果指定 cardTypeSource 属性,则应同时设置此属性。

在 MXML 中,有效值为:

在 ActionScript 中,可以使用以下常量来设置此属性:

CreditCardValidatorCardType.AMERICAN_EXPRESSCreditCardValidatorCardType.DINERS_CLUBCreditCardValidatorCardType.DISCOVERCreditCardValidatorCardType.MASTER_CARDCreditCardValidatorCardType.VISA

另请参见

cardTypeSource属性 
cardTypeSource:Object  [读写]

包含卡类型字段的值的对象。如果为此属性指定值,则必须同时为 cardTypeProperty 属性指定值。如果设置 sourceproperty 属性,请不要使用此属性。



实现
    public function get cardTypeSource():Object
    public function set cardTypeSource(value:Object):void
invalidCharError属性 
invalidCharError:String  [读写]

cardNumber 字段包含无效字符时的错误消息。

默认值为 "Invalid characters in your credit card number. (Enter numbers only.)".



实现
    public function get invalidCharError():String
    public function set invalidCharError(value:String):void
invalidNumberError属性 
invalidNumberError:String  [读写]

信用卡号码无效时的错误消息。

默认值为 "The credit card number is invalid.".



实现
    public function get invalidNumberError():String
    public function set invalidNumberError(value:String):void
noNumError属性 
noNumError:String  [读写]

cardNumber 字段为空时的错误消息。

默认值为 "No credit card number is specified.".



实现
    public function get noNumError():String
    public function set noNumError(value:String):void
noTypeError属性 
noTypeError:String  [读写]

cardType 字段为空白时的错误消息。

默认值为 "No credit card type is specified or the type is not valid.".



实现
    public function get noTypeError():String
    public function set noTypeError(value:String):void
wrongLengthError属性 
wrongLengthError:String  [读写]

cardNumber 字段包含的指定信用卡类型的位数不正确时的错误消息。

默认值为 "Your credit card number contains the wrong number of digits.".



实现
    public function get wrongLengthError():String
    public function set wrongLengthError(value:String):void
wrongTypeError属性 
wrongTypeError:String  [读写]

cardType 字段包含无效信用卡类型时的错误消息。您应该在 cardType 字段中使用以下预定义的常量:CreditCardValidatorCardType.MASTER_CARDCreditCardValidatorCardType.VISACreditCardValidatorCardType.AMERICAN_EXPRESSCreditCardValidatorCardType.DISCOVERCreditCardValidatorCardType.DINERS_CLUB

默认值为 "Incorrect card type is specified.".



实现
    public function get wrongTypeError():String
    public function set wrongTypeError(value:String):void
构造函数详细信息
CreditCardValidator()构造函数
public function CreditCardValidator()

构造函数。

方法详细信息
doValidation()方法
override protected function doValidation(value:Object):Array

覆盖基类 doValidation() 方法以验证信用卡号码。

不要直接调用此方法;Flex 会在执行验证的过程中调用它。如果创建自定义 Validator 类,则必须实现此方法。

参数

value:Object — 要验证的对象。

返回
Array — ValidationResult 对象的数组,验证程序检查的每个字段都有一个 ValidationResult 对象。
validateCreditCard()方法 
public static function validateCreditCard(validator:CreditCardValidator, value:Object, baseField:String):Array

用于调用验证程序的方便方法。每个标准 Flex 验证程序都有一个类似的方便方法。

参数

validator:CreditCardValidator — CreditCardValidator 实例。
 
value:Object — 要验证的字段,它必须包含以下字段:
  • cardType - 指定要验证的信用卡的类型。使用静态常量 CreditCardValidatorCardType.MASTER_CARDCreditCardValidatorCardType.VISACreditCardValidatorCardType.AMERICAN_EXPRESSCreditCardValidatorCardType.DISCOVERCreditCardValidatorCardType.DINERS_CLUB
  • cardNumber - 指定要验证的卡的号码。
 
baseField:String — 在值参数中指定的子字段的文本表示形式。例如,如果 value 参数指定 value.date,则 baseField 值为“date”。

返回
Array — ValidationResult 对象的数组,验证程序检查的每个字段都有一个 ValidationResult 对象。

另请参见

示例 如何使用示例
CreditCardValidatorExample.mxml
<?xml version="1.0"?>
<!-- Simple example to demonstrate the CreditCardValidator. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        import mx.controls.Alert;
    </mx:Script>

    <!-- Define model for the credit card data. -->
    <mx:Model id="creditcard">
        <card>    
            <cardType>{cardTypeCombo.selectedItem.data}</cardType>
            <cardNumber>{cardNumberInput.text}</cardNumber>
        </card>
    </mx:Model>

    <mx:CreditCardValidator id="ccV" 
        cardTypeSource="{creditcard}" cardTypeProperty="cardType"
        cardNumberSource="{creditcard}" cardNumberProperty="cardNumber"
        trigger="{myButton}" triggerEvent="click"
        cardTypeListener="{cardTypeCombo}"
        cardNumberListener="{cardNumberInput}"
        valid="Alert.show('Validation Succeeded!');"/>
  
    <mx:Panel title="CreditCardValidator Example" width="75%" height="75%" 
        paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">

        <mx:Form id="creditCardForm">
            <mx:FormItem label="Card Type">    
                <mx:ComboBox id="cardTypeCombo">
                    <mx:dataProvider>
                        <mx:Object label="American Express" data="American Express"/>
                        <mx:Object label="Diners Club" data="Diners Club"/>
                        <mx:Object label="Discover" data="Discover"/>
                        <mx:Object label="MasterCard" data="MasterCard"/>
                        <mx:Object label="Visa" data="Visa"/>
                    </mx:dataProvider>
                </mx:ComboBox>
            </mx:FormItem>
            <mx:FormItem label="Credit Card Number">
                <mx:TextInput id="cardNumberInput"/>
            </mx:FormItem>
            <mx:FormItem>
                <mx:Button id="myButton" label="Check Credit"/>
            </mx:FormItem>
        </mx:Form>     
        
    </mx:Panel>    
</mx:Application>