javascript - 如何创建 Angular Directive(指令)文本框只允许数字空格和分数

标签 javascript angular

如何为分数创建指令,以便用户可以输入唯一的分数,如下所示。

"10 1/2" // Valid format
"10.25" // Valid format 
"10    1/2" // Invalid format extra spaces found 
"dummy 12 1/2" // Invalid string format found

最佳答案

以下应该有效..

首先创建指令:

@Directive({
  selector: '[exampleDirective]'
})
export class TestDirective {

 constructor() {}

 @HostListener('input', ['$event'])
 ngOnChanges(evt: any) {
  const pattern: RegExp = new RegExp(/^[0-9]+\.?[0-9]*$/);
  if (!pattern.test(evt.target.value)) {
   evt.srcElement.value = evt.srcElement.value.substring(0,evt.srcElement.value.length - 1); // this will erase the last char that does not match the pattern...
  }
 }
}

然后在输入中选择它

<input exampleDirective/>

关于javascript - 如何创建 Angular Directive(指令)文本框只允许数字空格和分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55467416/

相关文章:

javascript - 确定两个元素之间的关系

javascript - 在页面卸载时完成 jQuery 动画

javascript - PHP 和 Javascript 日期问题

unit-testing - 使用 angular 2 配置 karma webpack 的覆盖范围

cordova - 如何添加Ionic2原生按钮点击音效?

javascript - 添加 NaN

javascript - 正则表达式排除单词

javascript - 如何在 angular.json 的脚本部分使用 glob 模式?

Angular 2 - 在按钮单击 n 次时创建节[在 Html 中]

Angular Generator VSCode插件类似于Angular文档中的一种