我有 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 上出现错误“无法读取 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) || [];
关于javascript - JavaScript 中的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22090738/