Javascript 如何阻止特殊字符?

Javascript 如何阻止特殊字符?,javascript,html,javascript-events,special-characters,block,Javascript,Html,Javascript Events,Special Characters,Block,我想阻止此代码中的特殊字符。 换句话说,用户只能输入字母数字值并使用退格进行删除 Bug:当我在if条件下编写code==8时,它允许所有特殊字符 <html> <head> <title>practice</title> <script type="text/javascript"> function noSpecialChar(e){

我想阻止此代码中的特殊字符。 换句话说,用户只能输入字母数字值并使用退格进行删除

Bug:当我在if条件下编写
code==8
时,它允许所有特殊字符

<html>
    <head>
        <title>practice</title>
        <script type="text/javascript">
              function noSpecialChar(e){
                    if (e.keyCode)
                        code = e.keyCode;
                    else if (e.which)
                        code = e.which;

                    //code==8                   => backspace
                    //(code>=65 && code<=90)    => alphabets
                    //(code>=48 && code<=57)      => numeric

                    if((code>=65 && code<=90)||(code>=48&&code<=57)||(code==8)){
                        return true;
                    }else{
                        return false;
                    }
              }

        </script>
    </head>
    <body>
        <input type="text" name="txtName" id="txtName" onkeydown=" return noSpecialChar(window.event);"/>
    </body>
</html>

实践
功能医院专科字符(e){
如果(例如键码)
代码=e.keyCode;
否则,如果(例如,哪个)
代码=e.which;
//代码==8=>退格
//(代码>=65和代码字母表(&C)
//(代码>=48&&代码数字

如果((代码>=65&&code=48&&code)正确地进行这样的过滤是很棘手的。下面的示例使用了“JavaScript:The Definitive Guide”一节“17.8文本事件”中的代码。如果您希望使用它,请从O'Reilly服务器下载代码,而不是在代码中直接引用。该代码使用whenReady.js例程,您可以从


正文:
字母数字
仅限字符

修改代码可能会稍微好一点,这样它就不用
数据-
属性,而是使用
模式
属性,即使禁用了JavaScript,它也会在某些浏览器上提供一些功能,并且可以灵活地指定允许的字符集正则表达式解析器,因此增益可能与所需的工作不符。

我有一个允许使用字符的脚本:

考虑您的html:


document.getElementById(“yourID”).onkeypress=函数(e){
var chr=String.fromCharCode(e.which);
如果(“允许使用哪些字符?键入它们而不是这些字符,不带任何分隔符”。indexOf(chr)<0)
返回false;
};
如果要仅允许字母和数字,请使用此选项:

<script>
        document.getElementById("yourID").onkeypress = function(e) {
        var chr = String.fromCharCode(e.which);
        if ("1234567890qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM".indexOf(chr) < 0)
            return false;
    };
</script>

document.getElementById(“yourID”).onkeypress=函数(e){
var chr=String.fromCharCode(e.which);
如果(“1234567890QWERTYUIOPLKJHGFDSAZCVBNMQWERTYUIOPLKJHGFDSAZCVBNM”。索引(chr)<0)
返回false;
};

这不是一个好的做法。您希望在服务器端而不是客户端进行这种检查。复制和粘贴如何?用户可以使用鼠标右键通过特殊字符。您应该在提交时(使用非常简单的正则表达式)和服务器端脚本中进行检查。错误:不是working@KarandeepSingh,我修复了URL(更改为“示例”“举例”)。
<script>
        document.getElementById("yourID").onkeypress = function(e) {
        var chr = String.fromCharCode(e.which);
        if ("Which characters are allowed? Type them instead of these, without any seperation".indexOf(chr) < 0)
            return false;
    };
</script>
<script>
        document.getElementById("yourID").onkeypress = function(e) {
        var chr = String.fromCharCode(e.which);
        if ("1234567890qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM".indexOf(chr) < 0)
            return false;
    };
</script>