【发布时间】:2021-10-08 04:07:35
【问题描述】:
我正在处理一个输入字段,它应该允许用户输入从 0 到 99 的数字。此外,不应允许用户输入第三位数字。
为了解决上述问题,我有以下正则表达式
/^([0-9]{2})$/
我有以下按键事件触发的功能
onlyAllowNumbers(evnt: KeyboardEvent): boolean {
const charCode = evnt.key;
const pattern = /^([0-9]{2})$/;
return pattern.test(charCode);
}
上述模式不允许我在输入字段中输入任何数字。
【问题讨论】:
-
因为输入的是单个字符。
-
<input type="number" min="0" max="99">怎么样? -
type=number 在 Firefox 中不起作用,而且用户仍然可以输入超过 2 位的数字
-
如果你对数字长度有严格的要求,你不应该忘记在服务器端检查它,输入字段和 JavaScript 都可以被用户绕过。
标签: javascript regex typescript