如何在输入字段中输入受限字符

How to enter restricted characters in input field

我正在使用 jQuery 方法来阻止 输入 字段中的某些字符,例如 #$%^&*()

现在,如何在输入字段中输入这些字符(如何破解此输入字段)。

 $('#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.preventDefault();
    return false;
});
<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">

您可以按如下方式限制鼠标右键,需要编写代码来限制控制键。

$("#textinput").on("contextmenu",function(e){
   e.preventDefault();
});

更新

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

您可以使用 input 事件,只要用户更改输入的内容(键入、通过 Ctrl + V 粘贴、通过上下文菜单粘贴等),它就会触发。将旧值存储在变量中,并在用户尝试输入无效值时重置内容:

var textinput = $('#textinput');
var oldValue = textinput.val();
var regex = new RegExp("^[a-zA-Z0-9@]*$");

textinput.bind('input', function () {
    if (regex.test(textinput.val())) {
        oldValue = textinput.val();
        return;
    }
    textinput.val(oldValue);
});

但正如 David Thomas 在他对您的问题的评论中指出的那样:也必须在服务器上检查该值。通过 JavaScript 检查它对您的用户来说是一个很好的功能,但如果有人真的想破解它,则对您没有帮助。他可以在浏览器中禁用 JavaScript,或者使用伪造的表单发送请求等