控制台如何处理?

时间:2019-04-17 05:00:36

标签: javascript html regex

如果有任何含糊之处,我会提前道歉,但是我对此很陌生。话虽这么说,这是问题所在:

我第一次使用正则表达式使用输入验证,并且在控制台中收到以下错误。 “未捕获的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();

我尝试删除';',但这没有用。真的在这里迷路了。

代码按预期运行,但是此错误...

1 个答案:

答案 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 

  }