我在angular 14中的模式匹配验证有问题。我有一个动态文本组件,它可以支持多种不同类型的文本输入,如果需要,可以附加自定义模式验证。下面是type=monetary
文本框的设置
case InputType.Monetary:
response.icon = response.icon ?? 'attach_money-outlined';
response.iconPosition = response.iconPosition ?? LayoutPositions.Left;
response.placeholder = response.placeholder ?? '0.00';
response.validationPattern = response.validationPattern ?? /^(\d{1,3}(,\d{3})*|(\d+))(.\d{2})?$/gm;
response.patternErrorText = response.patternErrorText ?? 'Please enter a valid dollar amount';
response.mask = response.mask ?? this.currencyInputMask;
break;
字符串
下面是它是如何应用的
if (response?.validationPattern) {
this.form.get(response.responseId)?.setValidators(Validators.pattern(response.validationPattern));
}
型
我面临的问题是,当这个文本字段中有偶数字符数时,无论如何,它都显示无效。当文本字段中有奇数字符数时,它似乎会按预期工作。我已经审查了正则表达式,我不认为这是问题所在。附上了该问题的一些截图
Invalid State UI
Invalid State Back End的
Valid State UI
Valid State Back End的
我试过了
- 交替正则表达式模式
- 正则表达式作为字符串而不是RegEx类型
- 直接应用正则表达式而不是存储在变量中
1条答案
按热度按时间bnl4lu3b1#
bobble bubble可以帮我解决这个问题。问题是在我的正则表达式末尾添加了
m
(多行)。移除它解决了问题。