我正在制作一个小程序,它将运行一个字符串并找到我的名字的完全匹配,然后将其推送到一个空数组,就像我的名字一样多次。我在处理逻辑时遇到问题,以便让我的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);
}
答案 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[]
。