我对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
的结果,所以它是!==
的结果(应该是true
或false
)。
换句话说,x = y !== z
解析为x = (y !== z)
,而不是(x = y) !== z
。
你可能想写
while ((arr = pattern.exec(str)) !== null) {
代替。