我在JS中有脚本:

$("#mailstextarea").on("change keyup paste click", function(){
    var text = this.value;
    var rez =  text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
    document.getElementById("emails").innerHTML = rez;

    for(var i = 0; i < rez.length; i++){
        addRow(rez[i]);
    }

})


当在#mailstextarea中键入带有邮件的文本时,我在div #emails中看到了此邮件,但是在rez.length“无法读取属性'length'为null”时收到错误。为什么?谢谢!

最佳答案

如果没有匹配项,.match()将返回null

只需添加if检查:

if (rez) {
    for(var i = 0; i < rez.length; i++){
        addRow(rez[i]);
    }
}


或者,当没有匹配项时,可以将rez设置为空数组。

var rez =  text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi) || [];

10-06 05:21