【问题标题】:matching exact search string in jquery在jquery中匹配精确的搜索字符串
【发布时间】: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


【解决方案1】:

这样的事情怎么样?

var word = "son";
$("LINE", currentContext).filter(function() {
    return new RegExp("\\b" + word + "\\b").test($(this).text());
}).each(function() { ... });

【讨论】:

  • 这正是我所需要的!不确定它是否需要另一个正则表达式,或者我是否可以使用过滤器。非常感谢老兄!
猜你喜欢
  • 2011-08-07
  • 1970-01-01
  • 2019-11-28
  • 2011-10-18
  • 2018-08-02
  • 1970-01-01
  • 2021-10-18
相关资源
最近更新 更多