如何知道要输入角色的位置?

时间:2017-10-09 16:29:54

标签: angular typescript

我有一个输入文本:

<input type="number" class="form-control" [ngClass]="config.inputClass" 
     [(ngModel)]="field.data" step="0.01" (keypress)="checkDecimalNumbers($event, field)"
     (blur)="validateDecimalNumber(field)" [readonly]="checkReadOnly(field)" />

我需要知道要输入一个角色的位置,因为我只需要允许角色&#39; - &#39;在位置0我已经查看了所有事件对象,但我还没有找到任何有用的东西。这是打字稿功能,但它允许在任何位置输入减号。

public checkDecimalNumbers = function (ev: KeyboardEvent, field: any) {
    const key = ev.keyCode || ev.charCode;
    const keyStr = String.fromCharCode(key);
    if ((keyStr === '.' && field.data.toString().indexOf(keyStr) < 0) || (keyStr === '-' && field.data.toString().indexOf(keyStr) < 0)) {
        return;
    } else if (isNaN(Number(keyStr))) {
        ev.preventDefault();
    }
}

1 个答案:

答案 0 :(得分:0)

您可以检查输入的字符,如果不是&#39; - &#39;则删除,但同时添加保留第一个,然后用该值替换值。如下所示:

<强> HTML

<input ... [(ngModel)]="input" (keyup)="format()" >

<强>打字稿

format(){
  let value = this.input;
  this.input = value.substr(0, 1) + value.substr(1).replace('-','');
}

<强> DEMO