2010-08-30 74 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