我编写了简单的正则表达式来检查几个单词,然后将它们放入一个新的数组中。当我手动检查值时,一切正常,但当我把它放入循环时,我收到错误。我的问题是 - 为什么?我觉得我的if语句有问题,但对我来说没问题......这是我的代码:
var elements = ["sztuka", "sztuki", "sztuk", "sztukateria", "sztukmistrz", "sztuczka"];
var correctElements = [];
var reg = /^sztuk[ia]$/ig;
function checkElements(reg, elements) {
for (var i=0; i < elements.length; i++) {
if (reg.test(elements[i] == true)) {
correctElements.push(elements[i]);
} else {
return false;
}
}
console.log(correctElements);
}
当我手动检查时,我收到了真的:
var reg = /^sztuk[ia]$/ig;
console.log(reg.test(elements[0]));
如果你能帮助我并解释它为什么会发生这种情况,我将非常感激。
答案 0 :(得分:2)
reg.test(elements[i] == true)
需要reg.test(elements[i]) == true)
答案 1 :(得分:1)
在遍历所有项目之前,您不应该返回false。请查看以下工作代码段。
var elements = ["sztuka", "sztuki", "sztuk", "sztukateria", "sztukmistrz", "sztuczka"];
var correctElements = [];
var reg = /^sztuk[ia]$/ig;
checkElements(reg,elements);
function checkElements(reg, elements) {
console.log("hi");
for (var i=0; i < elements.length; i++) {
if (reg.test(elements[i]) == true) {
correctElements.push(elements[i]);
}
}
console.log(correctElements);
}
&#13;