jQuery隐藏表格单元格中的子字符串

时间:2017-04-07 18:00:12

标签: jquery html-table hide cell hidden

我想隐藏表格单元格中的子字符串。让我们假设表格如下:

<div id="table">
  <table>
    <tr>
      <td> Blah </td>
      <td> Blah [100, 100]</td>
      <td> Blah [130, 70]</td>
    </tr>
  </table>
</div>

如何使用jQuery(和CSS)隐藏单元格2的[100,100]部分和单元格3的[130,70]部分?

我在另一个答案中找到了解决类似问题的方法:

<div class="text">Good Stuff Hide Me</div>
<div class="text">Great Stuff Hide Me</div>
<div class="text">Best Stuff Hide Me</div>

$('div.text').html(function (i, t) {
    return t.replace('Hide Me', '<span class="hidden">Hide Me</span>');
})

但我认为我需要一个正则表达式解决方案,因为[]部分的内容可能不同?还是有更好的iea?

3 个答案:

答案 0 :(得分:2)

你是否正确需要正则表达式。这应该有效:

<div class="text">Good Stuff [100]</div>
<div class="text">Great Stuff[100,010]</div>
<div class="text">Best Stuff[70, 130, 180]</div>

$('div.text').html(function (i, t) {
    return t.replace(/\[.*\]/g, '');
})

答案 1 :(得分:0)

t.replace(/(\s*\[s*\d+\s*,\s*\d+\s*\])/, '<span class="hidden">$1</span>')

Brian的回答删除了文本而不是隐藏文本(如果您以后不需要该文本,则会更加节省成本)。如果在任何情况下,你真的需要隐藏它以供将来参考,这将成功。我也倾向于使用更精确的正则表达式。 Brian将删除方括号之间的所有内容。仅当两个数字之间用逗号分隔时,上面的数字才匹配。

正则表达式参考 - &gt; https://www.w3schools.com/jsref/jsref_obj_regexp.asp

捕获小组解释 - &gt; https://stackoverflow.com/a/6419076/7081773

答案 2 :(得分:0)

由于您询问了表格单元格,因此如果您在其他地方有类似的文字,则希望将其归入并限制为<td>

$( 'td' ).each(function() {
    var currentText = $( this ).text();
    var newText = currentText.replace(/\[.+\]/g, '');
    $( this ).text( newText );
});