var sourceArray = "un un un deux deux";
var termArray = ["un", "deux"];
var found = 0;
for (var i =0; i < termArray.length; i++) {
found = sourceArray.match(/termArray[i]/g);
document.write(found.length);
}
在上面的代码中,我尝试让termArray [i]从termArray中呈现相应的字符串值。但是,这些代码不起作用。如何在匹配括号中设置termArray [i]的格式,以便在循环时由字符串值替换?如何将循环变量传递给正则表达式?
此外,我应该把[i]放在document.write行中,让它正确循环。 即使它不是“最佳”,请尽量不要更改代码。
Aaa所以这是关于使用构造函数而不是文字。感谢您的回答以及所有已回答的问题。我很惊讶document.write(found.length);无需指定[i]即可正确迭代。这是为什么 ? – Benj
@Benj您在每次迭代中都替换了'found'的值,因此它只包含当前迭代的值,并且没有关于其他迭代的信息。 – Paulpro
嗯补充正则表达式找到确切的字符串与^和$:如在found = sourceArray.match(新RegExp('\\ ^'+ termArray [i] +'\\ $','g'));我相信这是正确的语法,它返回“未捕获的类型错误:不能读取null的属性'长度'。任何线索为什么? Tks – Benj