regex - 在 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。
解决方案
如果你以这种方式在你的正则表达式前面加上可选的连字符
/-?(\d{0,3})(\d{0,3})(\d{0,3})/
这不能解决你的问题吗?
推荐阅读
- python - 如何在一个按钮中使用多个命令但它不应该同时运行?
- functional-programming - 球拍:list-ref 函数
- jquery - 选择元素通过jquery迭代,第一个保持不变
- c# - 在构建后事件中调用 csc.exe
- pandas - 如何使用 plotly 从 pandas 数据框中绘制折线图?
- entity-framework-core - 是否可以在没有任何模型的情况下搭建 dbcontext?
- php - 从多个表中提取 SQL 数据
- php - 嵌套的 HTML
- 标签正在破坏使用 Html2Pdf 生成 PDF
- python - Splitting a String based on tabs and spaces
- ibm-cloud - 有没有办法将 ibm 云功能从一个帐户复制到另一个帐户