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

时间:2015-08-31 02:24:32

标签: javascript regex validation textbox whitelist

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

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

        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.";
            }
        }

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

1 个答案:

答案 0 :(得分:0)

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

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