首页 > 解决方案 > Javascript 函数未按预期工作

问题描述

目前我正在尝试创建一个只允许 A-Za-z、0-9、空格和逗号的脚本。这是我的脚本:

<textarea name="commentText" onkeypress="return filterCharAll(event,this);"></textarea>

 

function filterCharAll(e, t) {
    if (window.event) {
        var charCode = window.event.keyCode;
    }
    else if (e) {
        var charCode = e.which;
    }
    else { return true; }
    if ((charCode > 47 && charCode < 58) || (charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || (charCode == 188 || charCode == 32 || charCode == 13)) {
        return true;
    } else {
        return false;
    }   
}

一切正常!但是逗号不起作用。当我按下它时,没有任何反应

JSfiddle:https ://jsfiddle.net/mek7qy8h/

你能帮助我吗?谢谢你。

标签: javascript

解决方案


您不应该使用它,charCode因为它已被弃用,而是您可以使用char并针对正则表达式进行测试。

function filterAll(event) {
  return /[A-Za-z0-9, ]/.test(event.char);
}

推荐阅读