2

我是 JS 的自学成才的业余爱好者,我认为是时候在这里注册了 :)

我正在尝试(但失败)编写一个脚本,该脚本从字符串数组中取出单个字符串,并检查它是否包含下拉菜单中的某些变量关键字。我的代码:http: //jsfiddle.net/apMsc/1/

我认为下拉菜单和search/indexOf存在一些冲突。如果关键字位于字符串的开头,我的代码似乎才有效。如果关键字被埋得更深,则search()返回 -1(我也尝试过indexOf)。

例如:

document.getElementById('result').innerHTML = test3array[0].indexOf(drop1);

其中test3array[0]是 string value1@-@ value2@-@ value1@-@ value2,而drop1是菜单中的变量。

如果我搜索 value1,该脚本将起作用,但除非我将其移到开头,否则不会搜索 value2。我也尝试使用new RegExp(drop1)这里基于以前的主题,但没有奏效。

任何建议将不胜感激。

4

1 回答 1

0

这是因为两者都test3array[0]drop1换行符开头。如果您想摆脱换行符,请调用trim()这些变量。例如,这有效:

document.getElementById('result').innerHTML =
    test3array[0].trim().indexOf(drop1.trim());

编辑:这里有一些关于提问的建议:您试图找出代码中不起作用的部分并将其发布在这里。在提出问题之前找到一个最小的测试用例是一个好主意,甚至通常会引导您找到解决方案,但是当您这样做时,您还应该检查您的最小测试用例是否也重现了该错误。就其本身而言,这条线document.getElementById('result').innerHTML = test3array[0].indexOf(drop1);是正确的。

于 2013-03-28T08:37:58.240 回答