为什么空结果会冻结脚本以及如何避免它?

Why a null result is freezing the script and how to avoid it?

当我使用下面的代码时:

if(string.match(/td>0/g).length == 8) {
    /*Do something*/
}

并且没有 /td>0/ 匹配,它 returns 一个 null 结果阻止下面的脚本执行。

我想知道代码冻结的原因,以及如何避免它并找到 .match() 的解决方案或替代方案?

您可以简单地先添加一个 null 检查 -

if(string.match(/td>0/g) != null && string.match(/td>0/g).length == 8) {
    /*Do something*/
}

试试这个(更多推荐):

var matching=string.match(/td>0/g);
if( matching != null && matching.length === 8) {
    /*Do something*/
}

使用 === 而不是 ==

您需要在检查长度之前进行空值检查。我会先做匹配然后再检查

var result = string.match(/td>0/g);
if (result && result.length) {}

或者使用 or 来捕获 null

if( (string.match(/td>0/g)||"").length ) {}