gpt4 book ai didi

angular - 将输入字段限制为小数点后两位 - Angular 5

转载 作者:太空狗 更新时间:2023-10-29 17:15:54 25 4
gpt4 key购买 nike

代码如下

<input type="number" class="form-control" value="" name="cost_price" #name="ngModel" [(ngModel)]="item.cost_price" placeholder="Cost Price"  />

用户不能输入超过 2 位小数。

例如,如果用户要输入 21.256。应该只允许他进入21.25

如何使用 angular 5 实现这一点?

最佳答案

首先创建指令来限制 typescript 中的两位小数,如下所示:

import { Directive, ElementRef, HostListener } from '@angular/core';
@Directive({
selector: '[appTwoDigitDecimaNumber]'
})
export class TwoDigitDecimaNumberDirective {
private regex: RegExp = new RegExp(/^\d*\.?\d{0,2}$/g);
private specialKeys: Array<string> = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];
constructor(private el: ElementRef) {
}
@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {
console.log(this.el.nativeElement.value);
// Allow Backspace, tab, end, and home keys
if (this.specialKeys.indexOf(event.key) !== -1) {
return;
}
let current: string = this.el.nativeElement.value;
const position = this.el.nativeElement.selectionStart;
const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');
if (next && !String(next).match(this.regex)) {
event.preventDefault();
}
}
}

在您的 app.module.ts 中注入(inject)指令。在你的 html 中使用这样的指令:

<input type="textbox" [(ngModel)]="InputValue" appTwoDigitDecimaNumber>

这是 Angular 4/5/6 中的工作示例:Limit Two decimal places number validation

希望这对你有帮助!!!

关于angular - 将输入字段限制为小数点后两位 - Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50722368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com