我是JS的一名自学成才的业余爱好者,并认为现在是时候在这里注册:)
我正在尝试(并且失败)编写一个脚本,该脚本从字符串数组中取出一个字符串,并从下拉菜单中检查它是否包含某些变量关键字。我的代码:http://jsfiddle.net/apMsc/1/
我认为与下拉菜单和search / indexOf存在一些冲突。如果关键字位于字符串的开头,我的代码似乎只能工作。如果关键字埋藏得更深,search()
会返回-1(我也尝试了indexOf
)。
例如:
document.getElementById('result').innerHTML = test3array[0].indexOf(drop1);
test3array [0] 是字符串value1@-@ value2@-@ value1@-@ value2
,而 drop1 是菜单中的变量。
如果我搜索value1,脚本将工作,但是除非我将其移动到开头,否则不会搜索value2。我也尝试使用基于之前主题的new RegExp(drop1)
,但它没有用。
任何建议都会受到最高的赞赏。
答案 0 :(得分:0)
这是因为test3array[0]
和drop1
都以换行符开头。如果您想要删除换行符,请在这些变量上调用trim()
。例如,这有效:
document.getElementById('result').innerHTML =
test3array[0].trim().indexOf(drop1.trim());
编辑:这里有一些提问的建议:您试图找出代码中不起作用的部分并在此处发布。在提出问题之前找到一个最小的测试用例是一个好主意,甚至经常引导您进入解决方案,但是当您这样做时,您还应该检查您的最小测试用例是否也重现了该错误。行document.getElementById('result').innerHTML = test3array[0].indexOf(drop1);
本身就是正确的。