From 1adc87bc67620070bd6b21f8af53c398c0260edf Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 14 Sep 2016 13:54:32 +0100 Subject: [PATCH] #726 regex validators --- .../widgets/core/form-field-validator.ts | 26 +++++++++++++++++++ .../widgets/core/form-field.model.ts | 6 +++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts index c1b45953f7..ba4661834c 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts @@ -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; + } + +} diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts index 10185c7894..e50c266b9c 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts @@ -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() ]; }