Jquery 不允许我输入下划线
Jquery not allowing me to enter underscore
大家好,我在 jquery 中有以下代码,它不允许我输入下划线。
$(".user-check").on("keydown", function(event){
// Allow controls such as backspace, tab etc.
switch (event.keyCode) {
case 8: // Backspace
case 9: // Tab
case 13: // Enter
case 16: // Shift
case 37: // Left
case 38: // Up
case 39: // Right
case 40: // Down
case 189: // underscore
break;
default:
var regex = new RegExp("^[a-zA-Z0-9.]+$");
var key = event.key;
if (!regex.test(key)) {
event.preventDefault();
return false;
}
break;
}
});
我的目标是允许字母数字字符和下划线。没有其他特殊字符
谢谢
这只允许字母数字字符
$(".user-check").keydown(function (e){
var k = e.keyCode || e.which;
var ok = k >= 65 && k <= 90 || // A-Z
k >= 96 && k <= 105 || // a-z
k >= 35 && k <= 40 || // arrows
k == 9 || //tab
k == 189 || //Underscore
k == 46 || //del
k == 8 || // backspaces
(!e.shiftKey && k >= 48 && k <= 57); // only 0-9 (ignore SHIFT options)
if(!ok || (e.ctrlKey && e.altKey)){
e.preventDefault();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="user-check" name="username">
你的问题有点不清楚,但如果你只想让用户输入带下划线的字母数字字符,请尝试使用此代码:
var regex = new RegExp("^[a-zA-Z0-9_]*$");
var key = event.key;
if (!regex.test(key)) {
event.preventDefault();
return false;
}
此外,您可以避免切换并删除 case:
部分
大家好,我在 jquery 中有以下代码,它不允许我输入下划线。
$(".user-check").on("keydown", function(event){
// Allow controls such as backspace, tab etc.
switch (event.keyCode) {
case 8: // Backspace
case 9: // Tab
case 13: // Enter
case 16: // Shift
case 37: // Left
case 38: // Up
case 39: // Right
case 40: // Down
case 189: // underscore
break;
default:
var regex = new RegExp("^[a-zA-Z0-9.]+$");
var key = event.key;
if (!regex.test(key)) {
event.preventDefault();
return false;
}
break;
}
});
我的目标是允许字母数字字符和下划线。没有其他特殊字符
谢谢
这只允许字母数字字符
$(".user-check").keydown(function (e){
var k = e.keyCode || e.which;
var ok = k >= 65 && k <= 90 || // A-Z
k >= 96 && k <= 105 || // a-z
k >= 35 && k <= 40 || // arrows
k == 9 || //tab
k == 189 || //Underscore
k == 46 || //del
k == 8 || // backspaces
(!e.shiftKey && k >= 48 && k <= 57); // only 0-9 (ignore SHIFT options)
if(!ok || (e.ctrlKey && e.altKey)){
e.preventDefault();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="user-check" name="username">
你的问题有点不清楚,但如果你只想让用户输入带下划线的字母数字字符,请尝试使用此代码:
var regex = new RegExp("^[a-zA-Z0-9_]*$");
var key = event.key;
if (!regex.test(key)) {
event.preventDefault();
return false;
}
此外,您可以避免切换并删除 case:
部分