为什么我得到" TypeError:input.match(...)为null"?

时间:2017-01-02 19:55:09

标签: javascript html error-handling

我有一个输入框,我希望根据您键入的文本提供特定警报。我一直收到错误" TypeError:input.match(...)为null"当我输入除#34;你好"。

之类的东西

我的代码:

<html>
<body>
<form name="form5">
   <input type=text  size=51 name="input">
   <input onClick=auswert() type=button value="submit">
</form>
<script type="text/javascript">

function auswert() {
var input = document.form5.input.value;

if (input.match(/hello/g).length == 1) alert("hello");
else alert("bye");
}

</script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

来自String.prototype.match()的Mozilla开发人员网络文档:

&#34;包含整个匹配结果和任何括号捕获的匹配结果的数组;如果没有匹配则为null。&#34;

input.match(/hello/g)返回null。然后,您在length上调用nullnull没有可以在其上调用的函数。

我建议你试试:

if (input.match(/hello/g) == null) {
    // No Matches
    alert("bye");
} else {
    // Matches
    alert("hello");
}