日期:2014-05-16  浏览次数:21035 次

禁用特殊字符的输入

function showKeyPress(evt) {
    evt = (evt) ? evt : window.event
    return checkSpecificKey(evt.keyCode);
}
///
function checkSpecificKey(keyCode) {
    var specialKey = "$%\:\;\~\,\,\//\\\\^*\'\"\+\|\?"; //Specific Key list
    var realkey = String.fromCharCode(keyCode);
    var flg = false;
    flg = (specialKey.indexOf(realkey) >= 0);
    if (flg) {
        //alert('请勿输入特殊字符: ' + realkey);
        return false;
    }
    return true;
}
document.onkeypress = showKeyPress;

///同一个页面中用户名需要对特殊字符进行控制,密码不需要,但是页面中写入以上js
///页面整体验证不通过。
<input type="text"  name="userName" onkeypress =showKeyPress()/>
<input type="text"  name="userpassword"/>




JavaScript 函数 用户体验

------解决方案--------------------
还有就是
var realkey = String.fromCharCode(keyCode);

这里取出来的值是不对的,还是用正则匹配吧。
<script type="text/javascript">
function showKeyPress(evt,obj) {
    evt = (evt) ? evt : window.event
    return checkSpecificKey(evt.keyCode,obj);
}
///
function checkSpecificKey(keyCode,obj) {
    var reg = /[\$\%\\\:\\\;\~\,\,\//\\\\^*\'\"\+\
------解决方案--------------------
\?]/g; //Specific Key list
    var val = obj.value;
    var flg = reg.test(val);
    if(flg){
        val = val.replace(reg,'')
        console.log(val)
        obj.value = val;
    }
}

 </script>
///同一个页面中用户名需要对特殊字符进行控制,密码不需要,但是页面中写入以上js
///页面整体验证不通过。
<input type="text"  name="userName" onkeyup ="return showKeyPress(event,this)"/>
<input type="text"  name="userpassword"/>