Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular2:IE中的数字验证_Javascript_Regex_Angular_Typescript - Fatal编程技术网

Javascript Angular2:IE中的数字验证

Javascript Angular2:IE中的数字验证,javascript,regex,angular,typescript,Javascript,Regex,Angular,Typescript,我正在尝试在IE 11中进行数字验证。我指的是。我无法验证2位和3位小数的数字。IE 11的typescript支持正则表达式吗?或者是否有其他方法验证该数字 validateNum(event: KeyboardEvent): void { const pattern = /^\d{1,3}[.]\d{1,3}$/; let inputChar = String.fromCharCode(event.charCode); if(!pattern.test(inputCh

我正在尝试在IE 11中进行数字验证。我指的是。我无法验证2位和3位小数的数字。IE 11的typescript支持正则表达式吗?或者是否有其他方法验证该数字

validateNum(event: KeyboardEvent): void {
    const pattern = /^\d{1,3}[.]\d{1,3}$/;
    let inputChar = String.fromCharCode(event.charCode);
    if(!pattern.test(inputChar)) {
        event.preventDefault();;
    }

请查看此Plnkr

注意:数字键盘中的点(.)在IE中不注册为键盘事件。但普通键盘中的点(逗号[,]和斜杠[/])工作正常

另外,keypress不注册backspace,所以我为它添加了一个单独的事件处理

下面是示例代码:

HTML:

`
App.ts:

data: string = "";

  validateNum(event: KeyboardEvent, amount): void {

    let pattern = new RegExp("^\d{1,3}[.]\d{1,3}$");

    console.log(this.data);

    if(amount == undefined){
      pattern = new RegExp("^[0-9]{1}$");
    }

    if(this.data.length >= 1 && this.data.length < 3){
       pattern = new RegExp("^[1-9]{1,3}$");
    }

    if(this.data.length == 3){
       pattern = new RegExp("^[0-9]{1,3}[.]$");
    }

    if(this.data.length > 3){
       pattern = new RegExp("^[0-9]{1,3}[.][0-9]{1,3}$");
    }

    if(this.data.length > 7){
       return false;
    }

    if(!pattern.test(this.data + event.key)) {
        return false;
    }
    this.data = this.data + event.key;
    return true;
  }

  handleBS(){
    this.data = this.data.slice(0, this.data.length - 1);
  }
data:string=“”;
ValidateEnum(事件:KeyboardEvent,amount):无效{
let pattern=new RegExp(“^\d{1,3}[.]\d{1,3}$”;
console.log(this.data);
如果(金额==未定义){
pattern=newregexp(“^[0-9]{1}$”;
}
如果(this.data.length>=1&&this.data.length<3){
pattern=newregexp(“^[1-9]{1,3}$”;
}
if(this.data.length==3){
pattern=newregexp(“^[0-9]{1,3}[.]$”);
}
如果(this.data.length>3){
pattern=newregexp(“^[0-9]{1,3}[.][0-9]{1,3}$”;
}
如果(this.data.length>7){
返回false;
}
if(!pattern.test(this.data+event.key)){
返回false;
}
this.data=this.data+event.key;
返回true;
}
车把(){
this.data=this.data.slice(0,this.data.length-1);
}
data: string = "";

  validateNum(event: KeyboardEvent, amount): void {

    let pattern = new RegExp("^\d{1,3}[.]\d{1,3}$");

    console.log(this.data);

    if(amount == undefined){
      pattern = new RegExp("^[0-9]{1}$");
    }

    if(this.data.length >= 1 && this.data.length < 3){
       pattern = new RegExp("^[1-9]{1,3}$");
    }

    if(this.data.length == 3){
       pattern = new RegExp("^[0-9]{1,3}[.]$");
    }

    if(this.data.length > 3){
       pattern = new RegExp("^[0-9]{1,3}[.][0-9]{1,3}$");
    }

    if(this.data.length > 7){
       return false;
    }

    if(!pattern.test(this.data + event.key)) {
        return false;
    }
    this.data = this.data + event.key;
    return true;
  }

  handleBS(){
    this.data = this.data.slice(0, this.data.length - 1);
  }