如果有任何含糊之处,我会提前道歉,但是我对此很陌生。话虽这么说,这是问题所在:
我第一次使用正则表达式使用输入验证,并且在控制台中收到以下错误。 “未捕获的TypeError:无法读取未定义的属性'值'。”这是我的JS第6行的代码。当我查看代码并将第6行与第16行进行比较时,它们看起来完全一样。有人可以解释我在做什么错吗?
这是我的第一个项目,我希望它不会出错。请帮助,轻轻地。
谢谢。
HTML:
<input type="text" placeholder="Weight" id="userWeight"
onkeyup="numbersOnly(this)"/>
AND
<input type="text" placeholder="Enter Dish" name="search"
id="mealText" onkeyup="lettersOnly(this)"/>
JS:
/ 函数使用正则表达式,这是定义搜索模式的一系列字符。字符串搜索算法使用此模式对字符串进行“查找”或“查找并替换”操作,或用于输入验证。 g =全局;这是一个标志,指示应针对字符串中的所有可能匹配项测试正则表达式,并且i =不区分大小写 []包含将'a'到'z'分组的正则表达式逻辑,并使用^ =除 /
以外的所有字符排除所有其他字符 function lettersOnly(input) {
var regex = /[^a-z]/gi;
input.value = input.value.replace(regex, "") //this is line 6 w/
the error
}
lettersOnly();
function numbersOnly(input) {
var regex = /[^0-9]/g;
input.value = input.value.replace(regex, "") //this is line 16 w/o
an error
}
}
numbersOnly();
我尝试删除';',但这没有用。真的在这里迷路了。
代码按预期运行,但是此错误...
答案 0 :(得分:0)
在您的代码中,您会在JS代码中调用lettersOnly()
和numbersOnly()
像在按键事件中从HTML调用此函数一样,从JS代码中删除此调用
function lettersOnly(input) {
var regex = /[^a-z]/gi;
input.value = input.value.replace(regex, "") //this is line 6 w/
}
function numbersOnly(input) {
var regex = /[^0-9]/g;
input.value = input.value.replace(regex, "") //this is line 16 w/o
}