包 | mx.validators |
类 | public class RegExpValidator |
继承 | RegExpValidator Validator EventDispatcher Object |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
expression
属性将正则表达式传递给验证程序,然后使用 flags
属性传递用于控制正则表达式模式匹配情况的其他标志。
如果验证程序可以在要验证的字段中找到正则表达式的匹配项,则验证成功。如果验证程序找不到匹配项,则会出现验证错误。
RegExpValidator 类调度 valid
和 invalid
事件。对于 invalid
事件,事件对象是 ValidationResultEvent 类的实例,并且它包含 ValidationResult 对象的数组。
但是,对于 valid
事件,ValidationResultEvent 对象包含 RegExpValidationResult 对象的数组。RegExpValidationResult 类是 ValidationResult 类的子类,并且包含与正则表达式一起使用的其他属性,其中包括:
-
matchedIndex
包含匹配项输入字符串中的起始索引的整数。 -
matchedString
包含与正则表达式匹配的输入字符串的子字符串的字符串。 -
matchedSubStrings
包含用括弧括住的子字符串匹配项(如果有)的字符串数组。如果未找到子字符串匹配项,则此数组的长度为 0。使用 matchedSubStrings[0] 访问第一个子字符串匹配项。
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." />
相关 API 元素
公共属性
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
enabled : Boolean
将此值设置为 false 将停止验证程序执行验证操作。 | Validator | ||
expression : String
要用于验证的正则表达式。 | RegExpValidator | ||
flags : String
匹配时使用的正则表达式标志。 | RegExpValidator | ||
listener : Object
指定验证侦听器。 | Validator | ||
noExpressionError : String
未指定任何正则表达式时的错误消息。 | RegExpValidator | ||
noMatchError : String
没有正则表达式的匹配项时的错误消息。 | RegExpValidator | ||
property : String
一个字符串,用于指定包含要验证的值的 source 对象的属性名称。 | Validator | ||
required : Boolean = true
如果为 true,则指定缺少值或空值将导致验证错误。 | Validator | ||
requiredFieldError : String
缺少值和 required 属性为 true 时的错误消息。 | Validator | ||
source : Object
指定包含要验证的属性的对象。 | Validator | ||
trigger : IEventDispatcher
指定生成触发验证程序的组件。 | Validator | ||
triggerEvent : String
指定触发验证的事件。 | Validator |
受保护的属性
公共方法
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数
| RegExpValidator | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
如果 Validator 是使用 MXML 标签创建的,则由 MXML 编译器自动调用。 | Validator | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
执行验证并(可选)将结果通知给侦听器。 | Validator | ||
[静态]
调用验证程序数组中的所有验证程序。 | Validator | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
受保护的方法
方法 | 由以下参数定义 | ||
---|---|---|---|
为从验证程序调度的有效和无效事件设置所有侦听器。 | Validator | ||
[覆盖]
覆盖基类 doValidation() 方法以验证正则表达式。 | RegExpValidator | ||
返回要验证的对象。 | Validator | ||
从错误结果数组返回 ValidationResultEvent。 | Validator | ||
如果值不为 null,则返回 true。 | Validator | ||
断开从验证程序调度的有效和无效事件的所有侦听器的连接。 | Validator | ||
构造 Validator 后,每当 ResourceManager 又调度一个“change”事件以指示已通过某种方式更改了本地化资源时,将会调用此方法。 | Validator |
受保护的常量
属性详细信息
expression | 属性 |
flags | 属性 |
noExpressionError | 属性 |
noMatchError | 属性 |
构造函数详细信息
RegExpValidator | () | 构造函数 |
public function RegExpValidator()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造函数
方法详细信息
doValidation | () | 方法 |
override protected function doValidation(value:Object):Array
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
覆盖基类 doValidation()
方法以验证正则表达式。
不要直接调用此方法;Flex 会在执行验证的过程中调用它。如果创建自定义 Validator 类,则必须实现此方法。
参数
value:Object — 要验证的对象。
|
Array — 对于无效结果,为 ValidationResult 对象的数组,其中包含验证程序所检查的每个字段的一个 ValidationResult 对象。
|
示例 如何使用本示例
RegExValidatorExample.mxml
<?xml version="1.0" encoding="utf-8"?> <!-- Simple example to demonstrate the RegExpValidator. --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx: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 = ""; } } ]]> </fx:Script> <fx:Declarations> <mx:RegExpValidator id="regExpV" source="{regex_text}" property="text" flags="g" expression="{regex.text}" valid="handleResult(event)" invalid="handleResult(event)" trigger="{myButton}" triggerEvent="click"/> </fx:Declarations> <s:Panel title="RegExpValidator Example" width="75%" height="75%" horizontalCenter="0" verticalCenter="0"> <s:VGroup left="10" right="10" top="10" bottom="10"> <s:Label width="100%" text="Instructions:"/> <s:Label width="100%" text="1. Enter text to search. By default, enter a string containing the letters ABC in sequence followed by any digit."/> <s:Label width="100%" text="2. Enter the regular expression. By default, enter ABC\d."/> <s:Label width="100%" text="3. Click the Button control to trigger the validation."/> <s:Label 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:"> <s:TextInput id="regex_text" text="xxxxABC4xxx" width="100%"/> </mx:FormItem> <mx:FormItem label="Enter regular expression:"> <s:TextInput id="regex" text="ABC\d" width="100%"/> </mx:FormItem> <mx:FormItem label="Results:"> <s:TextInput id="reResults" width="100%"/> </mx:FormItem> <mx:FormItem > <s:Button id="myButton" label="Validate"/> </mx:FormItem> </mx:Form> </s:VGroup> </s:Panel> </s:Application>
Tue Jun 12 2018, 11:04 AM Z