我对javascript很陌生,正则表达式有问题
根据this文档页面,regex.exec()函数应返回数组,如果不匹配则返回null。



为什么在我的代码中,exec()的结果是 bool(boolean) 还是 null

function matchHTMLsymbols(str)
  var pattern = /&|<|>|"|' /g;
  var arr;
  while ((arr = pattern.exec(str) !== null)) {
    console.log(arr);
    }
}

最佳答案

因为arr不是exec的结果,所以它是!==的结果(应该是truefalse)。

换句话说,x = y !== z解析为x = (y !== z),而不是(x = y) !== z

你可能想写

while ((arr = pattern.exec(str)) !== null) {

代替。

10-06 13:06
查看更多