You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery校验字母数字值失效问题排查

问题解决

你的代码里有两个关键问题,导致校验完全失效:

  1. jQuery选择器写错了
    你获取输入框值的时候,id选择器漏掉了#符号:

    var dangUS1 = $("dangerousUS1").val(); // 错误:缺少#,无法选中目标输入框
    

    正确写法应该是:

    var dangUS1 = $("#dangerousUS1").val(); // 正确:通过#匹配id元素
    

    因为没加#,jQuery找不到目标输入框,dangUS1会变成undefined。调用正则校验时,JS会把undefined自动转为字符串"undefined",这个字符串全是字母,刚好符合你的正则规则,所以不管输入@、!这类非法字符,都会弹出"correct"。

  2. 正则表达式的小优化(可选)
    当前正则里的-放在字符集末尾不会引发范围匹配问题,但如果后续调整字符顺序时不小心把它移到中间,就会变成范围匹配(比如a-z)。保险起见,可以把-转义或者移到字符集最开头:

    // 转义写法
    var regx = /^[A-Za-z0-9 _\.-]+$/;
    // 或者移到开头
    var regx = /^[-A-Za-z0-9 _.]+$/;
    

修正后的完整代码:

if (dangerous == "Yes" && $("#dangerousUS1").val() != '' ) {
    var dangUS1 = $("#dangerousUS1").val();
    var regx = /^[A-Za-z0-9 _.-]+$/;
    if (regx.test(dangUS1)) {
        alert("correct");
    } else {
        alert('You values should include Alpha numeric values');
    }
}

内容的提问来源于stack exchange,提问作者Jashvita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:32:47