2013-03-28 104 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