Apache Flex 4.16.1 API Reference | All Packages | All Classes | Index | Frames No Frames |
NumberValidator

Package | spark.validators
Class | public class NumberValidator
Inheritance | NumberValidator NumberValidatorBase GlobalizationValidatorBase GlobalizationBase AdvancedStyleClient flash.events.EventDispatcher

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

The NumberValidator class ensures that a String represents a valid number according to the conventions of a locale. It can validate strings that represent `int`,`uint`, and `Number` objects.

This class uses the `locale` style for specifying the requested locale ID.

The validator can ensure that the input falls within a given range (specified by `minValue` and `maxValue` properties), is an integer (specified by `domain` property), is non-negative (specified by `allowNegative` property), correctly specifies negative and positive numbers, and does not exceed the specified number of`fractionalDigits`. The validator sets default property values by making use of the `flash.globalization.NumberFormatter` and therefore the locale specific values are supplied by the operating system.

The `NumberValidator` class can be used in MXML declarations or in ActionScript code. This class uses the locale style for specifying the requested Locale ID required by the `flash.globalization.NumberFormatter` class, and has methods and properties that are bindable.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The `<spark:NumberValidator>` tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:

      <s:NumberValidator
        Properties
        negativeNumberFormat="locale specified string or customized by user."
        negativeNumberFormatError="The negative format of the input number is incorrect."
      />

View the examples

See also

flash.globalization.NumberFormatter

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | actualLocaleIDName : String [read-only] The name of the actual locale ID used by this class object. | GlobalizationBase
|  | allowNegative : Boolean Specifies whether negative numbers are permitted. | NumberValidatorBase
|  | className : String [read-only] The name of the component class. | AdvancedStyleClient
|  | decimalPointCountError : String Error message when the decimal separator character occurs more than once. | NumberValidatorBase
|  | decimalSeparator : String The decimal separator character used for validating numbers that have a decimal part. | NumberValidatorBase
|  | digitsType : uint Defines the set of digit characters to be used when validating numbers. | NumberValidatorBase
|  | domain : String Type of number to be validated. | NumberValidatorBase
|  | enabled : Boolean Setting this value to false will stop the validator from performing validation. | GlobalizationValidatorBase
|  | fractionalDigits : int The maximum number of digits that can appear after the decimal separator. | NumberValidatorBase
|  | fractionalDigitsError : String Error message when fraction digits exceeds the value specified by the fractionalDigits property. | NumberValidatorBase
|  | greaterThanMaxError : String Error message when the value exceeds the maxValue property. | NumberValidatorBase
|  | groupingSeparator : String The character or string used for the grouping separator. | NumberValidatorBase
|  | id : String The identity of the component. | AdvancedStyleClient
|  | inheritingStyles : Object An object containing the inheritable styles for this non-visual style client instance. | AdvancedStyleClient
|  | invalidCharError : String Error message when the value contains invalid characters. | NumberValidatorBase
|  | invalidFormatCharsError : String Error message when the value contains invalid format characters, which means that it contains a digit or minus sign (-) as a separator character, or it contains two or more consecutive separator characters. | NumberValidatorBase
|  | lastOperationStatus : String [override] [read-only] The status of the most recent operation that this class object performed. | NumberValidatorBase
|  | lessThanMinError : String Error message when the value is less than the minValue. | NumberValidatorBase
|  | listener : Object Specifies the validation listener. | GlobalizationValidatorBase
|  | localeUndefinedError : String Error message when the locale is undefined or is not available. | NumberValidatorBase
|  | maxValue : Number Maximum value for a valid number. | NumberValidatorBase
|  | minValue : Number Minimum value for a valid number. | NumberValidatorBase
|  | moduleFactory : IFlexModuleFactory A module factory is used as context for finding the style manager that controls the styles for this non-visual style client instance. | AdvancedStyleClient
|  | negativeError : String Error message when the value is negative and the allowNegative property is false. | NumberValidatorBase
|  | negativeNumberFormat : uint A numeric value that indicates a validating pattern for negative numbers. | NumberValidator
|  | negativeNumberFormatError : String Error message when the input number's negative number format is not following the pattern specified by the negativeNumberFormat property. | NumberValidator
|  | negativeSymbol : String [read-only] The negative symbol to be used when validating negative values. | NumberValidatorBase
|  | negativeSymbolError : String Error message when the negative symbol is repeated or is in wrong place. | NumberValidatorBase
|  | nonInheritingStyles : Object The beginning of this component's chain of non-inheriting styles. | AdvancedStyleClient
|  | notAnIntegerError : String Error message when the number must be an integer, as defined by the domain property. | NumberValidatorBase
|  | parseError : String Error message when number could not be parsed. | NumberValidatorBase
|  | property : String A String specifying the name of the property of the source object that contains the value to validate. | GlobalizationValidatorBase
|  | required : Boolean = true If true, specifies that a missing or empty value causes a validation error. | GlobalizationValidatorBase
|  | requiredFieldError : String Error message when a value is missing and the required property is true. | GlobalizationValidatorBase
|  | source : Object Specifies the object containing the property to validate. | GlobalizationValidatorBase
|  | styleDeclaration : CSSStyleDeclaration The style declaration that holds the inline styles declared by this object. | AdvancedStyleClient
|  | styleManager : IStyleManager2 [read-only] Returns the StyleManager instance used by this component. | AdvancedStyleClient
|  | styleName : Object The source of this object's style values. | AdvancedStyleClient
|  | styleParent : IAdvancedStyleClient A component's parent is used to evaluate descendant selectors. | AdvancedStyleClient
|  | trigger : IEventDispatcher Specifies the component generating the event that triggers the validator. | GlobalizationValidatorBase
|  | triggerEvent : String Specifies the event that triggers the validation. | GlobalizationValidatorBase

Protected Properties
Hide Inherited Protected Properties
Show Inherited Protected Properties

| Property | Defined By
--- | --- | ---
|  | actualListeners : Array [read-only] Contains an Array of listener objects, if any, or the source object. | GlobalizationValidatorBase
|  | actualTrigger : IEventDispatcher [read-only] Contains the trigger object, if any, or the source object. | GlobalizationValidatorBase
|  | resourceManager : IResourceManager [read-only] A reference to the object which manages all of the application's localized resources. | GlobalizationValidatorBase
|  | subFields : Array An Array of Strings containing the names for the properties contained in the value Object passed to the validate() method. | GlobalizationValidatorBase

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | NumberValidator() Constructs a new NumberValidator object to validate numbers according to the conventions of a given locale. | NumberValidator
|  | clearStyle(styleProp:String):void Deletes a style property from this component instance. | AdvancedStyleClient
|  | getClassStyleDeclarations():Array Returns an Array of CSSStyleDeclaration objects for the type selector that applies to this component, or null if none exist. | AdvancedStyleClient
|  | getStyle(styleProp:String):* [override] Gets a style property that has been set anywhere in this component's style lookup chain. | GlobalizationBase
|  | hasCSSState():Boolean Returns true if currentCSSState is not null. | AdvancedStyleClient
|  | initialized(document:Object, id:String):void The initialized method is called when this class or a class that extends this class is used in an MXML declaration. | AdvancedStyleClient
|  | matchesCSSState(cssState:String):Boolean Returns true if cssState matches currentCSSState. | AdvancedStyleClient
|  | matchesCSSType(cssType:String):Boolean Determines whether this instance is the same as, or is a subclass of, the given type. | AdvancedStyleClient
|  | notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void Propagates style changes to the children of this style client instance. | AdvancedStyleClient
|  | regenerateStyleCache(recursive:Boolean):void Sets up the internal style cache values so that the getStyle() method functions. | AdvancedStyleClient
|  | registerEffects(effects:Array):void Registers the EffectManager as one of the event listeners for each effect event. | AdvancedStyleClient
|  | setStyle(styleProp:String, newValue:*):void Sets a style property on this component instance. | AdvancedStyleClient
|  | styleChanged(styleProp:String):void Detects changes to style properties. | AdvancedStyleClient
|  | stylesInitialized():void Flex calls the stylesInitialized() method when the styles for a component are first initialized. | AdvancedStyleClient
|  | validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent Performs validation and optionally notifies the listeners of the result. | GlobalizationValidatorBase
|  | validateAll(validators:Array):Array [static] Invokes all the validators in the validators Array. | GlobalizationValidatorBase
|  | validateNumber(value:Object, baseField:String):Array Convenience method for calling a validator from within a custom validation function. | NumberValidator

Protected Methods
Show Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | addListenerHandler():void Sets up all of the listeners for the valid and invalid events dispatched from the validator. | GlobalizationValidatorBase
|  | doValidation(value:Object):Array Executes the validation logic of this validator, including validating that a missing or empty value causes a validation error as defined by the value of the required property. | GlobalizationValidatorBase
|  | getValueFromSource():Object Returns the Object to validate. | GlobalizationValidatorBase
|  | handleResults(errorResults:Array):ValidationResultEvent Returns a ValidationResultEvent from the Array of error results. | GlobalizationValidatorBase
|  | isRealValue(value:Object):Boolean Returns true if value is not null. | GlobalizationValidatorBase
|  | removeListenerHandler():void Disconnects all of the listeners for the valid and invalid events dispatched from the validator. | GlobalizationValidatorBase
|  | resourcesChanged():void This method is called when a GlobalizationValidatorBase is constructed, and again whenever the ResourceManager dispatches a "change" Event to indicate that the localized resources have changed in some way. | GlobalizationValidatorBase
|  | setDeferredStyles():void | AdvancedStyleClient

Events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | change | The change event is generated whenever the locale style is changed or another property is set that would cause the format of a number to change or cause updates to the other values available through this class. | GlobalizationBase
|  | invalid | Dispatched when validation fails. | GlobalizationValidatorBase
|  | valid | Dispatched when validation succeeds. | GlobalizationValidatorBase

Styles
Hide Inherited Styles
Show Inherited Styles

| Style | Description | Defined By
--- | --- | --- | ---
|  | locale | Type: String CSS Inheritance: yes The locale identifier that specifies the language, region, script and optionally other related tags and keys. See also http://www.unicode.org/reports/tr35/ | GlobalizationBase

Property Detail

negativeNumberFormat | property

`negativeNumberFormat:uint`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

A numeric value that indicates a validating pattern for negative numbers. This pattern defines the location of the negative symbol or parentheses in relation to the numeric portion of the number to be validated.

The following table summarizes the possible formats for negative numbers. When a negative number is validated, the minus sign represents the value of the `negativeSymbol` property and the 'n' character represents numeric value.

Negative number format type | Format
0 | (n)
1 | -n
2 | - n
3 | n-
4 | n -

The default value is dependent on the `actual locale` and `operating system`.

This property can be used as the source for data binding.

Implementation
`public function get negativeNumberFormat():uint`
`public function set negativeNumberFormat(value:uint):void`
Throws

| `ArgumentError` — if the assigned value is not a number between 0 and 4.

See also

negativeSymbol
format()

negativeNumberFormatError | property |

`negativeNumberFormatError:String`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Error message when the input number's negative number format is not following the pattern specified by the negativeNumberFormat property.

The default value is `"The negative format of the input number is incorrect."`.

This property can be used as the source for data binding.

Implementation
`public function get negativeNumberFormatError():String`
`public function set negativeNumberFormatError(value:String):void`
Constructor Detail

NumberValidator | () | Constructor

`public function NumberValidator()`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Constructs a new NumberValidator object to validate numbers according to the conventions of a given locale.

The locale for this class is supplied by the `locale` style. The `locale` style can be set in several ways:

- Inheriting the style from a `UIComponent` by calling the `UIComponent`'s `addStyleClient` method.
- By using the class in an MXML declaration and inheriting the locale from the document that contains the declaration.

            <fx:Declarations>
                   <s:NumberValidator id="nv" />
            </fx:Declarations>

- By using an MXML declaration and specifying the locale value in the list of assignments.

            <fx:Declarations>
                <s:NumberValidator id="nv_French_France" locale="fr_FR" />
            </fx:Declarations>

- Calling the `setStyle` method. For example: `nv.setStyle("locale", "fr-FR")`

If the `locale` style is not set by one of the above techniques, the instance of this class will be added as a `StyleClient` to the `topLevelApplication` and will therefore inherit the `locale` style from the `topLevelApplication` object when the `locale` dependent property getter or `locale` dependent method is called.

Method Detail

validateNumber | () | method

`public function validateNumber(value:Object, baseField:String):Array`

Language Version : | ActionScript 3.0

Product Version : | Flex 4.5

Runtime Versions : | Flash Player 10.1, AIR 2.5

Convenience method for calling a validator from within a custom validation function. Each of the standard Flex validators has a similar convenience method. Caller must check the `ValidationResult` objects in the returned array for validation status.

Parameters

| `value:Object` — A number string to validate.
| `baseField:String` — Text representation of the subfield specified in the `value` object. For example, if the `value` parameter specifies value.number, the `baseField` value is "number".

Returns

| `Array` — An `Array` of `ValidationResult` objects, with one `ValidationResult` object for each field examined by the validator.

See also

mx.validators.ValidationResult
Examples
NumberValidatorExample1.mxml

    <?xml version="1.0" encoding="utf-8"?>
    <!--

      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.

    -->
    <!-- Sample program for spark.formatters.NumberValidator -->
    <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:Declarations>
            <s:NumberValidator id="numberValidator" source='{inputNumber}'
                                 property="text" trigger='{validateBtn}'
                                 triggerEvent="click" />
            <s:NumberFormatter id="numberFormatter" useGrouping="true"/>
        </fx:Declarations>

        <fx:Script>
            <![CDATA[
                [Bindable]
                private var number:Number = 123456789.12;
            ]]>
        </fx:Script>

        <mx:Form>
            <mx:FormItem label="Input Locale ID Name">
                <mx:HBox>
                    <s:TextInput id="inputLocaleIDName" text="en-US"/>
                    <!-- Upon button click, sets the locale style on the document
                    UI component. The formatter will inherit this style. -->
                    <s:Button click="setStyle('locale', inputLocaleIDName.text);"
                              label="Apply"/>
                </mx:HBox>
                <mx:Text text="Example: 'en-US', 'fr-FR', 'ja-JP', 'ar-SA'"/>
            </mx:FormItem>

            <mx:FormItem label="Allow Negative">
                <mx:CheckBox id="alowNegative" selected="true"
                             change="numberValidator.allowNegative = alowNegative.selected"/>
            </mx:FormItem>

            <mx:FormItem label="Fractional Digits">
                <mx:TextInput id="fractionalDigits" text='{numberValidator.fractionalDigits}'
                              change="numberFormatter.fractionalDigits =
                              numberValidator.fractionalDigits = Number(fractionalDigits.text)"/>
            </mx:FormItem>

            <mx:FormItem label="Actual Locale ID Name">
                <mx:Text text="{numberValidator.actualLocaleIDName}"/>
            </mx:FormItem>

            <mx:FormItem label="Input number" >
                <mx:HBox>
                    <mx:TextInput id="inputNumber" />
                    <mx:Button id="validateBtn" label="Validate" />
                </mx:HBox>
            </mx:FormItem>

            <mx:FormItem label="Example number">
                <mx:Text text="{numberFormatter.format(123456789.12)}"/>
            </mx:FormItem>
        </mx:Form>
    </s:Application>

Wed Nov 15 2017, 09:50 AM +01:00