我有一个文本框,当我点击返回或点击按钮时,它会将文本发送到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.";
}
}
我是否需要使用循环来检查每个字符,或者是否有预定义的函数或方法来执行我想要做的事情?
答案 0 :(得分:0)
你只需要你的正则表达式的开始和结束锚点。这告诉它开始和结束之间的0个或更多字符必须是你的白名单
function valTxt(x) {
var patt=/^([a-zA-Z])*$/;
if (patt.test(x)) {
// matched
} else {
// didn't match
}
}