使用元素中的空格过滤匹配的文本

时间:2014-05-05 23:21:09

标签: javascript jquery regex search filter

我试图过滤转发器中与过滤器文本输入和jQuery匹配的许多文字元素。结构主要是这样的:

<div id="divResults">
    <table>
        <tr>
            <td>My test text </td>
        </tr>
        <tr>
            <td>Another test </td>
        </tr>
        <tr>
            <td>Further text details </td>
        </tr>
        <tr>
            <td>More details </td>
        </tr>
        <tr>
            <td>More about the test details, click here </td>
        </tr>
    </table>
</div>

代码:

if ($("#div > tr").text().search(new RegExp("test", "i")) < 0){
  //hide();
} else {
  //show();
}

一切都很好。但事情是我输入&#34;测试细节&#34;我得到了包含单词&#34; test&#34;的所有TD元素。和&#34;详细信息&#34;但我现在想要的是过滤我所说的完全匹配&#34;测试细节&#34;将只是最后一个TD。如何更改此代码以过滤完全匹配?

2 个答案:

答案 0 :(得分:2)

indexOf()与您要搜索的字符串一起使用:

$('table td').addClass(function(){
    return $(this).text().indexOf('test details') > -1 ? 'matched' : 'unmatched';
});

JS Fiddle demo;

参考文献:

答案 1 :(得分:1)

您可以更新正则表达式以匹配短语:

new RegExp('^(?=.*?test details).*$', 'i')

实施例

http://jsfiddle.net/Mj6P6/2/