“无法读取RegEx结果的”null“属性'长度'

时间:2016-08-21 08:19:31

标签: javascript regex

我不明白为什么在尝试执行这个简单的JS代码后出现错误:

<!DOCTYPE html>
<html>
<script>
    var str = "x*1/2";
    var patt1 = /( * | \/)/g;
    var result = str.match(patt1);
    document.write(result.length);
</script>
</html>
我试过typeof来查看变量的类型: str=string; patt1=object; result=object;但我仍然不知道s问题是什么。

1 个答案:

答案 0 :(得分:2)

  

我不明白为什么在我尝试执行此操作后出现错误   简单的JS代码

这种情况正在发生,因为您的模式无法与提供的输入"x*1/2"匹配。因此match会返回null。考虑以下片段,我们使用无意义的模式,但是可以匹配此输入。

var str = "x*1/2";
var patt1 = /([*]?\/)/g;
var result = str.match(patt1);
console.log(result.length);