为什么空结果会冻结脚本以及如何避免它?
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 ) {}
当我使用下面的代码时:
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 ) {}