jquery在html表中完全匹配

时间:2017-03-02 12:29:16

标签: javascript jquery html regex

我即将编辑一个插件,我有一个jquery列表的问题,它过滤并隐藏了表/ html的一些元素。

$(document).ready(function(){
    $('tr').find('td:contains("1,0")').closest('tr').hide();
    $('tr').find('td:contains("1.0")').closest('tr').hide();
});

这就是我现在正在使用它的方式。功能是我不想在行中的任何地方看到“1,0”和“1.0”的行。 “1,0”或“1.0”周围可以有任何东西。像“汽车1,0”或“纸1.0”。

我遇到的问题是,此代码还隐藏了“paper 11.00”和“cars 1,020”等行。 Anyrow包含任何形式的“1.0”“1,0”。

有人可以帮我调整“过滤器”,以避免隐藏“11.00”或“1,020”吗?

2 个答案:

答案 0 :(得分:0)

使用.filter()td.text().match与正则表达式\b1[.,]0\b匹配1.01,0



$(document).ready(function() {
  $('td')
    .filter(function() {
      return $(this).text().match(/\b1[.,]0\b/)
    })
    .closest('tr')
    .hide();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>1.0</td>
  </tr>
  <tr>
    <td>1,0</td>
  </tr>
  <tr>
    <td>1.01</td>
  </tr>
  <tr>
    <td>11.0</td>
  </tr>
  <tr>
    <td>var 1.0 bar</td>
  </tr>
  <tr>
    <td>var 1,0 bar</td>
  </tr>
  <tr>
    <td>1 . 0</td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用JQuery $.each()RegExp.prototype.test()函数的解决方案:

&#13;
&#13;
$(document).ready(function(){
    $('tr td').each(function(i, el){
        if (/\b(1\.0|1,0)\b/g.test($(el).text())) {
            $(el).closest('tr').hide();
        }   
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1">
<tr><td>11.0</td></tr>
<tr><td>cars 1,020</td></tr>
<tr><td>1.0</td></tr>
<tr><td>cars 1,0</td></tr>
</table>
&#13;
&#13;
&#13;