У меня есть класс, который предназначен для проверки полей ввода, чтобы убедиться, что значение всегда является десятичным. Я протестировал регулярное выражение здесь: http://livedocs.adobe.com/flex/3/html/help.html?content=validators_7.html, и похоже, что оно работает правильно, но в моем приложении я не могу заставить его соответствовать формату чисел.
Определение класса:
public class DecimalValidator {
//------------------------------- ATTRIBUTES
public var isDecimalValidator:RegExpValidator;
//------------------------------- CONSTRUCTORS
public function DecimalValidator() {
isDecimalValidator = new RegExpValidator();
isDecimalValidator.expression = "^-?(\d+\.\d*|\.\d+)$";
isDecimalValidator.flags = "g";
isDecimalValidator.required = true;
isDecimalValidator.property = "text";
isDecimalValidator.triggerEvent = FocusEvent.FOCUS_OUT;
isDecimalValidator.noMatchError = "Float Expected";
}
}
Установка источника здесь:
public function registerDecimalInputValidator(inputBox:TextInput, valArr:Array):void {
// Add Validators
var dValidator:DecimalValidator = new DecimalValidator();
dValidator.isDecimalValidator.source = inputBox;
dValidator.isDecimalValidator.trigger = inputBox;
inputBox.restrict = "[0-9].\\.\\-";
inputBox.maxChars = 10;
valArr.push(dValidator.isDecimalValidator);
}
И называет это здесь:
registerDecimalInputValidator(textInput, validatorArr);
Где textInput - это поле ввода, созданное ранее.
Очевидно, я упускаю что-то простое, но важное, но я не совсем уверен, что! Любая помощь будет высоко ценится.