Javascript 特殊字符验证

标签 javascript

<script language="JavaScript">
var mikExp = /[$\\@\\\#%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|]/;
function dodacheck(val) 
{
    var strPass = val.value;
    var strLength = strPass.length;
    var lchar = val.value.charAt((strLength) - 1);
    if(lchar.search(mikExp) != -1) 
    {
        var tst = val.value.substring(0, (strLength) - 1);
        val.value = tst;
    }
}
</script>

<input type="text" name="display1" id="display1" value="<?php echo $wc['display1']; ?>" class="width241 input fnt11" onKeyUp="javascript:dodacheck(xyz.display1);" maxlength="20">

此函数确保特殊字符不会打印在输入框中。 但是当我按下 shift 并按下任何特殊字符超过 5 秒时,它会打印特殊字符。

有什么线索可以阻止它发生吗?

最佳答案

试试这个,

var mikExp = /[$\\@\\\#%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|]/;

    function check(e) {
    var keynum
    var keychar
    var numcheck
    // For Internet Explorer
    if (window.event)
    {
    keynum = e.keyCode
    }
    // For Netscape/Firefox/Opera
    else if (e.which)
    {
    keynum = e.which
    }
    keychar = String.fromCharCode(keynum)
    if ((keychar.toString()).search(mikExp) == 0)
    {

    return false;
    }
    else {
    return true;
    }
    }

    <input type="text" name="display1" id="display1" value="" class="width241 input fnt11" onKeypress="javascript:return check(event);"  maxlength="20">

关于Javascript 特殊字符验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157887/

相关文章:

javascript - 对象字面量和返回对象的函数有什么区别?

javascript - 如何使用 JS 从 HTML 中删除特定标签?

javascript - 可以在 Sequelize 中嵌套包含的 WHERE 吗?

javascript - 检查类(class)内部或外部的选择

javascript - 如何将任何数字转换为 1 或 -1 并通过按位运算符保留符号?

javascript - 执行 javascript 时 Eval() 出错

javascript - 数据表不适用于使用 MVC 动态创建的表

javascript - 了解正则表达式?

php - 如何删除 Zend Framework Controller 中先前添加的脚本文件?

javascript - 如何从路由函数外部获取Nodejs响应对象?