允许用户仅输入字母和数字ERROR

时间:2014-09-23 17:15:09

标签: jquery html

使用以下代码来阻止这些字母#$%^&*()

我的问题是当我在输入字段中复制并粘贴这些字母这些字母被粘贴时,即使用户尝试粘贴,我该如何阻止

$('#textinput').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9@]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }

    e.<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="textinput" name="mname" type="text" placeholder="Sanoj Lawrence" class="form-control input-md">preventDefault();
    return false;
});

2 个答案:

答案 0 :(得分:0)

您没有return:true;

if( validate() ){ // This will never be true, only false or null
    console.log("Valid!");
}

答案 1 :(得分:0)

如果您只是想要它,那么用户就无法输入数字,这样做的简单方法就是这样。

<input type="text" onkeypress="validate(event)"/>

<script>
function validate(evt) {
    var theEvent = evt || window.event;
    var key = theEvent.keyCode || theEvent.which;
    key = String.fromCharCode( key );
    var regex = /[0-9]/;
    if( regex.test(key) ) {
        theEvent.returnValue = false;
        if(theEvent.preventDefault) theEvent.preventDefault();
    }
}    
</script>

以下是JSFIDDLE演示

的演示

编辑将其更改为仅在评论中指定的字符

function validate(evt) {
    var theEvent = evt || window.event;
    var key = theEvent.keyCode || theEvent.which;
    key = String.fromCharCode( key );
    var regex = /[a-z A-Z @ .]/;
    if(!regex.test(key) ) {
        theEvent.returnValue = false;
        if(theEvent.preventDefault) theEvent.preventDefault();
    }
} 

此处是JSFIDDLE,其中包含修改后的正则表达式