如何在输入字段中输入受限字符
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,或者使用伪造的表单发送请求等
我正在使用 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,或者使用伪造的表单发送请求等