【发布时间】:2016-12-12 20:19:43
【问题描述】:
我正在学习 JavaScript 并且我构建了这个程序,它搜索 String 中的字母 E 的实例,然后将一个字母一个字母地存储到array,但现在当它找到字母 E 的类似实例时,它也会输出类似的实例,在这种情况下,我有 Eddie 和 Eric。而且我不希望它输出类似的实例,在这种情况下是 Eric。我知道有一种 hacky 方法可以做到这一点,例如 if(nameYouFound !== "myName")。但我不喜欢它......在我学到这一点的网站上,它说有内置的 JavaScript,string 方法可以提供帮助。你知道有什么方法可以解决问题吗?
请不要用 JQuery 回答,我正在努力变得更好 JavaScript...
这里是sn-p的代码:
/*jshint multistr:true */
var text, myName, hits, i, j;
text = "Hello, there, how are you feeling Eddie hope you are ok, ok Eric";
myName = "Eddie";
hits = [];
for (i = 0; i < text.length; i++) {
if (text[i] === "E") {
for (j = i; j < (myName.length + i); j++) {
hits.push(text[j]);
}
}
}
if (hits.length == 0) {
alert("Your name was not found!")
} else {
alert(hits);
}
【问题讨论】:
-
这不是在字符串中搜索“名称”,而是在搜索字母
E的实例。 -
@Claies 谢谢我编辑它
-
但是现在当它找到一个相似的名称时,它也会输出相似的名称,在这种情况下,我有 Eddie 和 Eric。而且我不希望它输出相似的名称。我不明白这个
-
@jonju 感谢您的关注,我现在编辑了它
-
另外值得注意的是,这个输出不是
Eddie和Eric两个元素的数组,它是一个单独的字符数组,[E][d][d][i][e][E][r][i][c][ ]。
标签: javascript arrays string search