Javascript 文本框 - 不要使用非白名单字符提交

Javascript textbox - do not submit with non-whitelist characters

我有一个文本框,当我点击 return 或单击按钮时,它会将文本发送到 div。我需要排除字符串并给出错误消息,其中包含不在我的白名单中的字符。我希望我可以在用户提交文本时检查字符串,而不是在他们键入时检查每个字符。

我试过正则表达式测试路线,但如果有任何字符与我的白名单匹配,则它 return 为真,而不是每个字符都匹配。 (代码只有我的白名单上的字母,但我可以稍后自己更改那部分。)

        function valTxt(x) {
            var patt=/[a-z]/i;
            if (patt.test(x)) {
                document.getElementById("valMsg").innerHTML = "Contains letters.";
            }
            else {
                document.getElementById("valMsg").innerHTML = "Does not contain letters.";
            }
        }

我是否需要使用循环来检查每个字符,或者是否有预定义的函数或方法可以完成我想做的事情?

您只需要正则表达式上的开始和结束锚点。这告诉它开始和结束之间的 0 个或多个字符必须在您的白名单中

function valTxt(x) {
        var patt=/^([a-zA-Z])*$/;
        if (patt.test(x)) {
            // matched
        } else {
            // didn't match
        }
}