input使用replce禁止输入,在字符串中间添加字符光标会跳转到字符串最后,但会出现光标跳转到字符串最后再跳转到删除位置(光标闪烁),不知道怎么解决闪烁问题,希望有网友能有好的解决办法。
var card={
cardValue : "",//保存银行卡
pos : ""//光标位置
}
//银行卡号
$(document).on('input', '.cardList .account', function(){
card.pos = this.selectionEnd;//获取当前光标位置
var _me=this;
if (this.value.length < card.cardValue.length) {//当删除时不做处理
card.cardValue=this.value;
} else{//输入
var reg = /^[0-9]*$/;
if (!reg.test(this.value)) {//输入非数字时
this.value = (function(a){//替换
card.cardValue = a.length >= 16 ? a.substring(0,16) : a.replace(/\D/g, '');
setTimeout(function(){//重置光标位置
_me.setSelectionRange(card.pos-1,card.pos-1);
},100);
return card.cardValue;
})(this.value);
}else{//输入数字
card.cardValue=this.value;
}
};
});