首页 > 解决方案 > 在 Angular 7 应用程序中,如何修改此掩码输入以允许“-”或数字作为第一个字符,以及所有其他字符作为数字?

问题描述

在我的 Angular 7 应用程序中,我有一个屏蔽用户输入的方法。目前,它将阻止用户输入除数字以外的任何值。我需要它来允许用户输入“-”或数字作为第一个字符,并且所有其他字符必须是数字。

  maskInputAmount(e) {
    const t = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,3})/);
    e.target.value = t[2] ? t[1] + t[2] + (t[3] ? + t[3] : '') : t[1];
  }

我将在这个项目的中途加入,这个验证器中有 3 个捕获组。这不是必需的,他们以前希望每 3 个字符使用一次逗号,但后来取消了该要求。

如果值为正 (9999999),则最大字符数为 7;如果值为负 (-9999999),则最大字符数为 8。

标签: regexangularangular7masking

解决方案


如果你以这种方式在你的正则表达式前面加上可选的连字符

/-?(\d{0,3})(\d{0,3})(\d{0,3})/

这不能解决你的问题吗?


推荐阅读