angularjs Angular 14正则表达式验证器中的模式匹配问题

mec1mxoz  于 2023-08-02  发布在  Angular
关注(0)|答案(1)|浏览(145)

我在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类型
  • 直接应用正则表达式而不是存储在变量中
bnl4lu3b

bnl4lu3b1#

bobble bubble可以帮我解决这个问题。问题是在我的正则表达式末尾添加了m(多行)。移除它解决了问题。

相关问题