You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by al...@apache.org on 2018/05/07 06:01:51 UTC
[royale-asjs] branch feature/MXRoyale updated: RegExpValidator.as
Added
This is an automated email from the ASF dual-hosted git repository.
alinakazi pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/feature/MXRoyale by this push:
new e3d22c8 RegExpValidator.as Added
e3d22c8 is described below
commit e3d22c801f587afbd61ecba57597a79dc4c7bc4d
Author: alinakazi <AL...@GMAIL.COM>
AuthorDate: Mon May 7 11:01:50 2018 +0500
RegExpValidator.as Added
---
.../main/royale/mx/validators/RegExpValidator.as | 438 +++++++++++++++++++++
1 file changed, 438 insertions(+)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/validators/RegExpValidator.as b/frameworks/projects/MXRoyale/src/main/royale/mx/validators/RegExpValidator.as
new file mode 100644
index 0000000..b411976
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/validators/RegExpValidator.as
@@ -0,0 +1,438 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.validators
+{
+
+import mx.events.ValidationResultEvent;
+/* import mx.managers.ISystemManager;
+import mx.managers.SystemManager;
+ */
+[ResourceBundle("validators")]
+
+/**
+ * The RegExpValidator class lets you use a regular expression
+ * to validate a field.
+ * You pass a regular expression to the validator using the
+ * <code>expression</code> property, and additional flags
+ * to control the regular expression pattern matching
+ * using the <code>flags</code> property.
+ *
+ * <p>The validation is successful if the validator can find a match
+ * of the regular expression in the field to validate.
+ * A validation error occurs when the validator finds no match.</p>
+ *
+ * <p>The RegExpValidator class dispatches the <code>valid</code>
+ * and <code>invalid</code> events.
+ * For an <code>invalid</code> event, the event object is an instance
+ * of the ValidationResultEvent class, and it contains an Array
+ * of ValidationResult objects.</p>
+ *
+ * <p>However, for a <code>valid</code> event, the ValidationResultEvent
+ * object contains an Array of RegExpValidationResult objects.
+ * The RegExpValidationResult class is a child class of the
+ * ValidationResult class, and contains additional properties
+ * used with regular expressions, including the following:</p>
+ * <ul>
+ * <li><code>matchedIndex</code> An integer that contains the starting
+ * index in the input String of the match.</li>
+ * <li><code>matchedString</code> A String that contains the substring
+ * of the input String that matches the regular expression.</li>
+ * <li><code>matchedSubStrings</code> An Array of Strings that contains
+ * parenthesized substring matches, if any. If no substring matches are found,
+ * this Array is of length 0. Use matchedSubStrings[0] to access the
+ * first substring match.</li>
+ * </ul>
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:RegExpValidator></code> tag
+ * inherits all of the tag attributes of its superclass,
+ * and adds the following tag attributes:</p>
+ *
+ * <pre>
+ * <mx:RegExpValidator
+ * expression="<i>No default</i>"
+ * flags="<i>No default</i>"
+ * noExpressionError="The expression is missing."
+ * noMatchError="The field is invalid."
+ * />
+ * </pre>
+ *
+ * @includeExample examples/RegExValidatorExample.mxml
+ *
+ * @see mx.validators.RegExpValidationResult
+ * @see mx.validators.ValidationResult
+ * @see RegExp
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class RegExpValidator extends Validator
+{
+ //include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function RegExpValidator()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private var regExp:RegExp;
+
+ /**
+ * @private
+ */
+ //private var foundMatch:Boolean = false;
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // expression
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the expression property.
+ */
+ private var _expression:String;
+
+ [Inspectable(category="General")]
+
+ /**
+ * The regular expression to use for validation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get expression():String
+ {
+ return _expression;
+ }
+
+ /**
+ * @private
+ */
+ public function set expression(value:String):void
+ {
+ if (_expression != value)
+ {
+ _expression = value;
+
+ createRegExp();
+ }
+ }
+
+ //----------------------------------
+ // flags
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the flags property.
+ */
+ private var _flags:String;
+
+ [Inspectable(category="General", defaultValue="null")]
+
+ /**
+ * The regular expression flags to use when matching.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get flags():String
+ {
+ return _flags;
+ }
+
+ /**
+ * @private
+ */
+ public function set flags(value:String):void
+ {
+ if (_flags != value)
+ {
+ _flags = value;
+
+ createRegExp();
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties: Errors
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // noExpressionError
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the noExpressionError property.
+ */
+ //private var _noExpressionError:String;
+
+ /**
+ * @private
+ */
+ //private var noExpressionErrorOverride:String;
+
+ //[Inspectable(category="Errors", defaultValue="null")]
+
+ /**
+ * Error message when there is no regular expression specifed.
+ * The default value is "The expression is missing."
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* public function get noExpressionError():String
+ {
+ return _noExpressionError;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set noExpressionError(value:String):void
+ {
+ noExpressionErrorOverride = value;
+
+ _noExpressionError = value != null ?
+ value :
+ resourceManager.getString(
+ "validators", "noExpressionError");
+ } */
+
+ //----------------------------------
+ // noMatchError
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the noMatchError property.
+ */
+ /* private var _noMatchError:String;
+ */
+ /**
+ * @private
+ */
+ /* private var noMatchErrorOverride:String;
+
+ [Inspectable(category="Errors", defaultValue="null")]
+ */
+ /**
+ * Error message when there are no matches to the regular expression.
+ * The default value is "The field is invalid."
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* public function get noMatchError():String
+ {
+ return _noMatchError;
+ } */
+
+ /**
+ * @private
+ */
+ /* public function set noMatchError(value:String):void
+ {
+ noMatchErrorOverride = value;
+
+ _noMatchError = value != null ?
+ value :
+ resourceManager.getString(
+ "validators", "noMatchError");
+ } */
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ /* override protected function resourcesChanged():void
+ {
+ super.resourcesChanged();
+
+ noExpressionError = noExpressionErrorOverride;
+ noMatchError = noMatchErrorOverride;
+ } */
+
+ /**
+ * Override of the base class <code>doValidation()</code> method
+ * to validate a regular expression.
+ *
+ * <p>You do not call this method directly;
+ * Flex calls it as part of performing a validation.
+ * If you create a custom Validator class, you must implement this method. </p>
+ *
+ * @param value Object to validate.
+ *
+ * @return For an invalid result, an Array of ValidationResult objects,
+ * with one ValidationResult object for each field examined by the validator.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /* override protected function doValidation(value:Object):Array
+ {
+ var results:Array = super.doValidation(value);
+
+ // Return if there are errors
+ // or if the required property is set to <code>false</code> and length is 0.
+ var val:String = value ? String(value) : "";
+ if (results.length > 0 || ((val.length == 0) && !required))
+ return results;
+
+ return validateRegExpression(value);
+ } */
+
+ /**
+ * @private
+ */
+ /* override protected function handleResults(
+ errorResults:Array):ValidationResultEvent
+ {
+ var result:ValidationResultEvent;
+
+ if (foundMatch)
+ {
+ result = new ValidationResultEvent(ValidationResultEvent.VALID);
+ result.results = errorResults;
+ }
+ else
+ {
+ result = super.handleResults(errorResults);
+ }
+
+ foundMatch = false;
+
+ return result;
+ }
+ */
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private function createRegExp():void
+ {
+ regExp = new RegExp(_expression,_flags);
+ }
+
+ /**
+ * @private
+ * Performs validation on the validator
+ */
+ /* private function validateRegExpression(value:Object):Array
+ {
+ var results:Array = [];
+ foundMatch = false;
+
+ if (regExp && _expression != "")
+ {
+ var result:Object = regExp.exec(String(value));
+ if (regExp.global)
+ {
+ while (result != null)
+ {
+ results.push(new RegExpValidationResult(
+ false, null, "", "", result[0],
+ result.index, result.slice(1)));
+ result = regExp.exec(String(value));
+ foundMatch = true;
+ }
+ }
+ else if (result != null)
+ {
+ results.push(new RegExpValidationResult(
+ false, null, "", "", result[0],
+ result.index, result.slice(1)));
+ foundMatch = true;
+ }
+
+ if (results.length == 0)
+ {
+ results.push(new ValidationResult(
+ true, null, "noMatch",
+ noMatchError));
+ }
+ }
+ else
+ {
+ results.push(new ValidationResult(
+ true, null, "noExpression",
+ noExpressionError));
+ }
+
+ return results;
+ } */
+}
+
+}
--
To stop receiving notification emails like this one, please contact
alinakazi@apache.org.