搜索字符串的名称,并使用for循环记录每个匹配项的名称

时间:2015-09-04 11:47:21

标签: javascript

我正在制作一个小程序,它将运行一个字符串并找到我的名字的完全匹配,然后将其推送到一个空数组,就像我的名字一样多次。我在处理逻辑时遇到问题,以便让我的for循环正常工作,这是我目前的代码。

正如您所看到的,我不确定在for循环中放入什么内容。任何关于如何解决这种逻辑的见解都将是最受欢迎的。如果我的代码让你想要掏出你的眼球,我还要道歉。 O. *

var text = "This is a Christopher string with Christopher inside of it complicated. The string Coner is fairly long Christopher.";

var myName = "Christopher";

var hits = [];

for(/* ??? */) {
    if (text.search(myName) === true) {
        // If we find it, push name into empty array
        for(/* ??? */) {
            hits.push(text(myName));
        }
    }
}
if( hits === 0){
    console.log("Your name was not found");
}   else{
        console.log(hits);
    }

2 个答案:

答案 0 :(得分:3)

您可能想要使用正则表达式:

var hits = text.match(/Christopher/g);

if (hits.length == 0) {
    console.log("Your name was not found");
} else {
    console.log(hits);
}

<强>更新

如果你想使用变量作为搜索条件,这就是这样做的方法:

var condition = "Christopher";
var regex = new RegEx(condition, "g");

hits = text.match(regex);

答案 1 :(得分:0)

如果我理解正确,你想在字符串中搜索你的名字。

for (var i = 0, len = str.length; i < len; i++) {
    alert(str[i]);
}

此示例应在字符串中打印字母。要找到您的名字,您应该使用if(str[i]) === 'C'语句替换警报。如果这是真的,你应该检查下一个字符(H)并继续这样。最终,如果名称完整,请将其添加到hits[]