我有一个为所有字段共享的组件指令,但我想为特定字段添加一个规则,该字段阻止用户输入逗号,我在文件ts中有以下代码,但它只满足正小数的条件(例如:2323.34343),否则为大小写负小数(例如:-3232.323)我无法输入减号,因为正则表达式检查函数与第一个字符为减号不匹配。我该如何解决?请帮助我,非常感谢!!!
private el: HTMLInputElement;
private check(value: string) {
const regExpString = "^-?\\s*((\\d+(\\.\\d{0,5})?)|((\\d*(\\.\\d{1,5}))))\\s*$";
return String(value).match(new RegExp(regExpString));
}
@HostListener("keydown", ["$event"])
onKeyDown(v) {
const value: string = this.el.value;
const next: string = value.concat(v.key);
console.log(this.check(next))
if (next && !this.check(next)) {
v.preventDefault();
}
}```
1条答案
按热度按时间tkclm6bt1#
通过HTML文件-使用“模式”对HTML文件中的数字或字母应用验证。
通过TS文件-使用ASCII值进行逗号验证。如果用户输入逗号,将匹配逗号的ASCII代码。否则使用。