识别给定单词的标签是什么?

时间:2014-03-24 15:01:03

标签: javascript jquery

接下来,我在下面有这个div,其中某些标签包含[INFO] [/ INFO]类型:

<div id="tags">
[INFO id=“rol”]
Rol -> is a greatest project to add in the same people
[/INFO]


[INFO id=“add”]
Add -> is moment who someone pick the ball and shoot in the cars
[/INFO]


[INFO id=“tree”]
tree -> is tree of a views in the other dimensions
[/INFO]
</div>

我创建了一个用jQuery制作的搜索引擎,在文本字段中键入内容并单击搜索,以便保存变量“SearchText”,如下所示:

$(“#buttonGo").click(function() {
var searchText = $(‘#searchField’).val();
});

之后,我所要做的就是:

  1. 获取存储在变量SearchText中的值,然后查找     div中的文字

  2. 然后找到文本,然后给出一个警告,显示它是什么         找到INFO标签,例如:

  3.   

    SearchText var =“其他视图”;

    他必须识别标签[INFO id =“tree”] [/ INFO],因为文本位于此标签内....并且返回警报应如下所示:

      

    (标签:信息,Id:树,desc:“树 - &gt;是其他维度中的视图树”)

    我不知道从哪里开始,有人能帮我一把吗?

1 个答案:

答案 0 :(得分:1)

要跟进我之前的评论,您可以创建一个INFO对象,如下所示:

var treeInfo = new Object();
treeInfo.id = "tree";
treeInfo.description = "tree -> is tree of a views in the other dimensions"

接下来,如果您愿意,可以创建数组来保存信息对象:

var infoArray = [];
infoArray.push(treeInfo); 

然后,当您检查提供的文本时,请使用简单的循环。例如:

for (var i = 0; i < infoArray.length; i++) {
     if (infoArray[i].description.indexOf(searchTextVar) != -1){
       //found correct text, do something.
     }
}

最好将for循环包装在函数中,并在找到匹配项时返回Info对象。

如果您不想将INFO个对象存储在div中,则可以使用此路径。

编辑以解决有关数组大小的注释: 如果你想使用一大块文本,你可以使用下面的方法,虽然它不一定是最干净/最快的。这只是解决问题的一种方法。

使用这样的正则表达式:\[INFO id=.+?] 一次searchTextVar索引开始。然后,使用类似\[/INFO]的内容从同一索引中找到结束标记。现在,使用正则表达式匹配中的索引的searchTextVar子字符串将包含您的标记。

之后,生成的字符串应该是正确的标记,您可以解析文本并根据需要显示它。

如果您正在处理那么多标签,那么将它们存储在浏览器中可能不是最佳选择...考虑使用数据库或其他存储机制