#726 regex validators

This commit is contained in:
Denys Vuika
2016-09-14 13:54:32 +01:00
parent 4a9357b6cf
commit 1adc87bc67
2 changed files with 30 additions and 2 deletions

View File

@@ -188,3 +188,29 @@ export class MaxValueFieldValidator implements FormFieldValidator {
return true;
}
}
export class RegExFieldValidator implements FormFieldValidator {
private supportedTypes = [
FormFieldTypes.TEXT,
FormFieldTypes.MULTILINE_TEXT
];
isSupported(field: FormFieldModel): boolean {
return field &&
this.supportedTypes.indexOf(field.type) > -1 &&
!!field.regexPattern;
}
validate(field: FormFieldModel): boolean {
if (this.isSupported(field) && field.value) {
if (field.value.length > 0 && field.value.match(new RegExp('^' + field.regexPattern + '$'))) {
return true;
}
field.validationSummary = 'Invalid value format';
return false;
}
return true;
}
}

View File

@@ -28,7 +28,8 @@ import {
MinLengthFieldValidator,
MaxLengthFieldValidator,
MinValueFieldValidator,
MaxValueFieldValidator
MaxValueFieldValidator,
RegExFieldValidator
} from './form-field-validator';
@@ -147,7 +148,8 @@ export class FormFieldModel extends FormWidgetModel {
new MinLengthFieldValidator(),
new MaxLengthFieldValidator(),
new MinValueFieldValidator(),
new MaxValueFieldValidator()
new MaxValueFieldValidator(),
new RegExFieldValidator()
];
}