Javascript Angular2:IE中的数字验证
我正在尝试在IE 11中进行数字验证。我指的是。我无法验证2位和3位小数的数字。IE 11的typescript支持正则表达式吗?或者是否有其他方法验证该数字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
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);
}