2010-08-30 88 views
0

字符串我使用這個功能,可以幫助我的webdevelopers找到網頁中的一段代碼:JavaScript不能找到包含方括號

function findString (str) { 
    var strFound; 
    strFound=self.find(str); 
    if (strFound && self.getSelection && !self.getSelection().anchorNode){ 
    strFound=self.find(str); 
    } 
    if (!strFound) { 
    strFound=self.find(str,1,1) 
    while (self.find(str,1,1)) continue 
    } 
} 

的問題是,當我輸入以下字符串例如:

array[1] 

它找不到它!這是奇怪的,因爲我試過這個功能,它可以找到任何其他字符串。 那麼,如何使用此函數來查找包含方括號的字符串(如果可能,不使用正則表達式)?

謝謝

問候

回答

0

我想你的腳本做一個簡單的正則表達式,有一個它的錯誤。如果您通過以下

if (strFound && self.getSelection && !self.getSelection().anchorNode) { 

替換以下

if (strFound && self.getSelection && !self.getSelection().anchorNode) 

它的工作原理。

在Firefox和Chrome中,搜索字符串爲array [1]時,strFound爲true。 在IE 8中,腳本不起作用。

編輯:代碼我測試過:

$(document).ready(function() { 
    findString("array[1]"); 
}); 

function findString (str) { 
    var strFound; 
    strFound=self.find(str); 
    if (strFound && self.getSelection && !self.getSelection().anchorNode) { 
     strFound=self.find(str); 
    } 
    if (!strFound) { 
     strFound=self.find(str,1,1) 
     while (self.find(str,1,1)) continue 
    } 
    alert(strFound); 
} 
+0

我編輯了帖子。我忘記了左括號,但即使如此,它不起作用。你能「pastebin」你的代碼嗎?謝謝。 – Zakaria 2010-08-30 13:32:58

+0

函數findString(str){var strFound; strFound = self.find(str);如果(strFound && self.getSelection &&!self.getSelection()。anchorNode){ strFound = self.find(str); } 如果{ strFound = self.find(STR,1,1) 而(self.find(STR,1,1))繼續 } 警報(strFound)(strFound!); } $(document).ready(function(){ findString(「array [1]」); }); – Zafer 2010-08-30 13:45:16

0

什麼目標函數找到的是呼籲?那是一扇窗戶嗎?是的,那功能究竟是什麼find?根據文檔,它是:

find()方法在調用時顯示一個查找對話框。 這允許用戶在從中調用它的頁面中搜索字符串。

這是否意味着HTML標記未處理,並且您正在查找HTML標記數組[1]?哪些瀏覽器是支持的功能?實現服務器端搜索

一種方式是讀取整個文件(假設你知道文件的位置),並使用字符串函數search

+0

我使用的是Firefox 3.6.8。你是對的,搜索功能是有幫助的,但find函數不僅可以找到字符串,還可以滾動並高亮顯示它。這就是爲什麼我試圖讓它使用find函數。 – Zakaria 2010-08-30 13:34:34