【发布时间】:2012-04-28 14:40:30
【问题描述】:
我正在使用 jQuery 解析各种 XML 文件,并实现了一个搜索功能,可以在当前选择的文件中找到某个单词或短语,但是下面的行有一个小问题:
$("LINE:contains(" + query + ")",currentContext).each(function(){
搜索本身工作得很好,但是,这一行正在检索包含查询的所有单词。例如,如果我想找到“儿子”这个词,它正在检索“季节”。
我知道这取决于寻找任何包含“儿子”的字符串。从我环顾四周的情况来看,.filter() 可以解决我的问题,但我不确定如何在我的代码中实现它,我尝试了类似$("LINE").filter(query,currentContext).each(function() 但无济于事,所以任何帮助将不胜感激.
可以在此处查看其中一个 XML 文件的简短示例:http://pastebin.com/1tqhpH4W
提前非常感谢!
【问题讨论】:
-
我对正则表达式的熟练程度不如我想的那样,但您的答案可能是使用
somestring.match(/\bson\b/);。我不确定这是否完全正确,但\b在“儿子”周围加上了一个词边界,你需要这样的东西。 -
我是同一个家伙,想提高正则表达式和一般 javascript 的技能,你的权利和@VisioN 做到了,只需将查询包装在“//b”中即可设置词界。谢谢你的投入!
-
是的,VisioN 在那里完成了繁重的工作,我只是在猜测。很高兴它对你有用!
标签: javascript jquery search filter each