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

RegExpValidator 类允许您使用正则表达式验证字段。可使用 expression 属性将正则表达式传递给验证程序,然后使用 flags 属性传递用于控制正则表达式模式匹配情况的其它标志。

如果验证程序可以在要验证的字段中找到正则表达式的匹配项,则验证成功。如果验证程序找不到匹配项,则会出现验证错误。

RegExpValidator 类调度 validinvalid 事件。对于 invalid 事件,事件对象是 ValidationResultEvent 类的实例,并且它包含 ValidationResult 对象的数组。

但是,对于 valid 事件,ValidationResultEvent 对象包含 RegExpValidationResult 对象的数组。RegExpValidationResult 类是 ValidationResult 类的子类,并且包含与正则表达式一起使用的其它属性,其中包括:

MXML 语法expanded隐藏 MXML 语法

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

  <mx:RegExpValidator
    expression="No default" 
    flags="No default" 
    noExpressionError="The expression is missing." 
    noMatchError="The field is invalid." 
  />
  

查看示例

另请参见

mx.validators.RegExpValidationResult
mx.validators.ValidationResult
RegExp


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedenabled : Boolean
将此值设置为 false 将停止验证程序执行验证操作。
Validator
  expression : String
要用于验证的正则表达式。
RegExpValidator
  flags : String
匹配时使用的正则表达式标志。
RegExpValidator
 Inheritedlistener : Object
指定验证侦听器。
Validator
  noExpressionError : String
未指定任何正则表达式时的错误消息。
RegExpValidator
  noMatchError : String
没有正则表达式的匹配项时的错误消息。
RegExpValidator
 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
受保护的属性
 属性定义方
 InheritedactualListeners : Array
[只读 (read-only)] 包含侦听器对象(如果有)的数组或源对象。
Validator
 InheritedactualTrigger : IEventDispatcher
[只读 (read-only)] 包含触发器对象(如果有)或源对象。
Validator
 InheritedresourceManager : IResourceManager
[只读 (read-only)] 引用管理所有应用程序本地化资源的对象。
Validator
 InheritedsubFields : Array
一个字符串数组,其中包含传递到 validate() 方法的 value 对象中所含属性的名称。
Validator
公共方法
 方法定义方
  
构造函数
RegExpValidator
 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
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
 Inherited
为从验证程序调度的有效和无效事件设置所有侦听器。
Validator
  
覆盖基类 doValidation() 方法以验证正则表达式。
RegExpValidator
 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
属性详细信息
expression属性
expression:String  [读写]

要用于验证的正则表达式。



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

匹配时使用的正则表达式标志。



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

未指定任何正则表达式时的错误消息。默认值为“The expression is missing”。



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

没有正则表达式的匹配项时的错误消息。默认值为“The field is invalid”。



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

构造函数

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

覆盖基类 doValidation() 方法以验证正则表达式。

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

参数

value:Object — 要验证的对象。

返回
Array — 对于无效结果,为 ValidationResult 对象的数组,其中包含验证程序所检查的每个字段的一个 ValidationResult 对象。
示例 如何使用示例
RegExValidatorExample.mxml
<?xml version="1.0"?> 
<!-- Simple example to demonstrate the RegExpValidator. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.events.ValidationResultEvent;
            import mx.validators.*;
    
            // Write the results to the 
            private function handleResult(eventObj:ValidationResultEvent):void {
                if (eventObj.type == ValidationResultEvent.VALID)
                {
                    // For valid events, the results Array contains
                    // RegExpValidationResult objects.
                    var xResult:RegExpValidationResult;
                    reResults.text="";
                    for (var i:uint = 0; i < eventObj.results.length; i++)
                    {
                        xResult = eventObj.results[i];
                        reResults.text=reResults.text + xResult.matchedIndex + " " +
                            xResult.matchedString + "\n";
                    }
                }
                else
                {
                    reResults.text="";            
                }        
            }
        ]]>
    </mx:Script>

    <mx:RegExpValidator id="regExpV" 
        source="{regex_text}" property="text" 
        flags="g" expression="{regex.text}" 
        valid="handleResult(event)" invalid="handleResult(event)"
        trigger="{myButton}" triggerEvent="click"/>
    
   <mx:Panel title="RegExpValidator Example" width="95%" height="95%" 
        paddingTop="5" paddingLeft="5" paddingRight="5" paddingBottom="5">
   
        <mx:Text width="100%" text="Instructions:"/>
        <mx:Text width="100%" text="1. Enter text to search. By default, enter  a string containing the letters ABC in sequence followed by any digit."/>
        <mx:Text width="100%" text="2. Enter the regular expression. By default, enter ABC\d."/>
        <mx:Text width="100%" text="3. Click the Button control to trigger the validation."/>
        <mx:Text width="100%" text="4. The results show the index in the text where the matching pattern begins, and the matching pattern. "/>
   
        <mx:Form>
            <mx:FormItem label="Enter text: ">
                <mx:TextInput id="regex_text" text="xxxxABC4xxx" width="100%"/>
            </mx:FormItem>

            <mx:FormItem label="Enter regular expression: ">
                <mx:TextInput id="regex" text="ABC\d" width="100%"/>
            </mx:FormItem>

            <mx:FormItem label="Results: ">
                <mx:TextInput id="reResults" width="100%"/>
            </mx:FormItem>

            <mx:FormItem >
                <mx:Button id="myButton" label="Validate"/>
            </mx:FormItem>
        </mx:Form>
    </mx:Panel>
</mx:Application>