过滤输入——JS总结

过滤输入——JS总结
1.过滤输入两种模式:
    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注入’主要使用的有英文半角的单引号" ' ",我们可以做适当的设置,通过正则表达式将其过滤掉。




评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值