2013-03-28 165 views
2

我在JS一个自学成才的业余选手,并认为它的时间,终于在这里注册:)JavaScript字符串搜索问题

我试图(和失败)写一个脚本,需要一个串出的字符串数组,并检查它是否包含某个下拉菜单中的某些可变关键字。我的代码:http://jsfiddle.net/apMsc/1/

我认为与下拉菜单和search/indexOf有一些冲突。如果关键字在字符串的开头,我的代码似乎只能工作。如果关键字被深埋,search()返回-1(我也试过indexOf)。

例如:

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

test3array [0]是一个字符串[email protected]@ [email protected]@ [email protected]@ value2,和drop1是从菜单中的变量。

该脚本将工作,如果我搜索value1,但不是value2,除非我将它移动到开头。我也尝试使用new RegExp(drop1)基于以前的主题,但它没有奏效。

任何意见将非常感激。

回答

0

这是因为test3array[0]drop1都以换行符开头。如果你想摆脱换行符,请致电trim()这些变量。例如,这个工程:

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

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

+1

公平的警告:修剪不被IE8支持 – MaxArt 2013-03-28 08:44:29

+0

这样做的技巧,谢谢:)这是*假设*是一个简化的例子,在我逐渐剥离其他所有东西之后。我想它可以被最小化更多... – Alex 2013-03-28 08:45:12

+0

@Alex它被简化了,只是不正确。 :D – thejh 2013-03-28 08:49:27