【问题标题】:Jquery not allowing me to enter underscoreJquery不允许我输入下划线
【发布时间】:2021-06-15 18:51:37
【问题描述】:

大家好,我在 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;
}
}); 

我的目标是允许字母数字字符并允许下划线。没有其他特殊字符

谢谢

【问题讨论】:

  • "它不允许使用下划线 [字符]" - “我的目标只是字母数字” - 请注意 _ 字符是被认为是“字母数字”字符 (0-9/az) - 那么究竟你想要什么?
  • 您在使用正则表达式之前明确阻止了下划线 - 将 case 189: // underscore 更改为 //case 189: // underscore
  • 抱歉刚刚更新了问题。我需要字母数字字符,只需要下划线,不需要其他特殊字符

标签: jquery jquery-plugins


【解决方案1】:

您的问题不太清楚,但如果您只想允许用户输入带下划线的字母数字字符,请尝试使用以下代码:

var regex = new RegExp("^[a-zA-Z0-9_]*$");
var key = event.key;
if (!regex.test(key)) {
    event.preventDefault();
    return false;
}

另外,您可以避免切换并删除case: 部分

【讨论】:

  • 但它也会允许我不想要的特殊字符
【解决方案2】:

这仅允许字母数字字符

    $(".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">

【讨论】:

  • 我只想允许字母数字输入以及下划线。不是任何其他特殊字符
  • 我已经编辑了我的答案代码段,现在它只允许输入字母数字和下划线。
  • 试过了,但还是不行,不要服用undersocre。
猜你喜欢
  • 2019-08-20
  • 2013-06-03
  • 1970-01-01
  • 2020-06-10
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
相关资源
最近更新 更多