思路
在当前input的dom上绑定keydown和keyup来进行拦截和替换
直接上代码
defaultTypeTextRules(inputDom,type='text'){
inputDom.onkeyup=function(event){
//特殊字符都用正则表达式替换掉 中文输入法来把不需要字符截取掉
debugger
let reg = type == 'text' ? /[·~!@#¥%……&*+={}【】、|;:‘’“”,《》。、?/.]/g : /[·~!@#¥%……&+={}|:‘’“”《》?/.]/g
event.target.value = event.target.value.replace(reg,"");
}
inputDom.onkeydown=function(event){
console.log(event,"keydown");
let keyCode = event.keyCode;
let key = event.key;
let shiftKey = event.shiftKey; //是否按下了shift
// 除中文、英文字符、数字、横线、下划线、中英文括号()外,其它字符都不能输入。
// 非中文输入法的时候
if(keyCode != 229){
let isPrenvent = true;
let reg = type == 'text' ? /[~`!\]\[@#$%^&*=+}{\\|:;""'',><./?/*+.]/g : /[~`!@#$%^&+=|\\:""''></?/+}{.]/g
if (reg.test(key)) {
isPrenvent = true;
} else {
isPrenvent = false;
}
event.returnValue = !isPrenvent;
}
}
},

该博客主要介绍了如何使用JavaScript监听input输入框的keydown和keyup事件,实现实时过滤和替换特殊字符的功能。通过正则表达式判断并阻止非指定字符的输入,确保输入内容符合特定格式要求。
2190

被折叠的 条评论
为什么被折叠?



