正则匹配声明位置 和 for循环问题

崩溃的情况,

想测试下上传文档类型是否符合标准,然后就发现这样的诡异事情。


var rex = /docx|doc|xlsx|xls|pptx|ppt|txt|pdf|rar|zip|7z|cab|iso|html/ig;


var arr = ["doc", "docx", "docx", "docx", "doc", "doc", "doc", "doc", "doc", "doc", "doc"];

var len = arr.length;


for (var i = 0; i < len; i++) {

  var fileType = arr[i];      

  if (!rex.test(fileType)) {

    console.log("erro: " + i + "  " + fileType);

  }

}


// erro: 1  docx 

// erro: 3  docx

// erro: 5  doc

// erro: 7  doc

// erro: 9  doc

正确的答案,隔一个就错误,但是不符合正则的全都是错误。。。。


但是,把


var rex = /docx|doc|xlsx|xls|pptx|ppt|txt|pdf|rar|zip|7z|cab|iso|html/ig;

放在for循环里面,就不会出错了。。。。


谁能帮忙解释下,为什么会出现这个错误,谢谢了。


慕莱坞森
浏览 304回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript