过滤输入——JS总结
1.过滤输入两种模式:
1.1 禁止或屏蔽非数字键的输入,阻止非数字键的默认行为
1.2 验证后取消,你可以先输入非法字符,然后判断后,取消刚才输入的文本
2.实现:
2.1 方法:禁止……默认行为 【引用封装:封装基础代码】
2.2 方法:验证后……输入的文本 【引用封装:封装基础代码】
在SQL数据库安全中,大家特别熟悉有防‘SQL注入’,而‘SQL注入’主要使用的有英文半角的单引号" ' ",我们可以做适当的设置,通过正则表达式将其过滤掉。
1.1 禁止或屏蔽非数字键的输入,阻止非数字键的默认行为
1.2 验证后取消,你可以先输入非法字符,然后判断后,取消刚才输入的文本
2.实现:
2.1 方法:禁止……默认行为 【引用封装:封装基础代码】
addEvent(window,'load',function () {
var fm = document.getElementById('MyForm');
var user = fm.elements['user'];
var content = fm.elements['content'];
addEvent(content,'keypress',function (evt) {
var e = evt || window.event;
var charCode = getCharCode(evt);
//正则表达式来获取文本是否为数字
//alert(String.fromCharCode(charCode));
if (! /\d/.test(String.fromCharCode(charCode)) && charCode > 8 ){
preDef(evt); //屏蔽非数字键盘的输入
}
//PS: charCode > N, N只限于放开光标键、退格键和删除键,N过大,就会出现漏网之鱼。
});
addEvent (areaField,'cut', function (evt) {
preDef(evt); //阻止裁剪
});
addEvent (areaField,'copy', function (evt) {
preDef(evt); //阻止复制
});
addEvent (areaField,'paste', function (evt) {
preDef(evt); //阻止粘贴
});
//屏蔽中文输入法,但Chrome无效
content.style.imeMode = 'disabled';
//【值得注意】: 屏蔽输入法用户体验不好,会让用户误以为电脑坏了
});
2.2 方法:验证后……输入的文本 【引用封装:封装基础代码】
addEvent(window,'load',function () {
var fm = document.getElementById('MyForm');
var user = fm.elements['user'];
var content = fm.elements['content'];
addEvent(content,'keypress',function (evt) {
var e = evt || window.event;
var charCode = getCharCode(evt);
//正则表达式来获取文本是否为数字
//alert(String.fromCharCode(charCode));
if (! /\d/.test(String.fromCharCode(charCode)) && charCode > 8 ){
preDef(evt); //屏蔽非数字键盘的输入
}
//【注意】: charCode > N, N只限于放开光标键、退格键和删除键,N过大,就会出现漏网之鱼。
});
addEvent(content,'keyup',function (evt) {
this.value = this.value.replace(/[^\d]/g,''); //将非数字键替换为空
});
在SQL数据库安全中,大家特别熟悉有防‘SQL注入’,而‘SQL注入’主要使用的有英文半角的单引号" ' ",我们可以做适当的设置,通过正则表达式将其过滤掉。