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
}
}
我有一个文本框,当我点击 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
}
}