2017-04-07 184 views
1

我想隐藏表格单元格中的子字符串。让我们假设表看起来像这样:jQuery隐藏表格单元格中的子字符串

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

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

我发现了另一个答案这个解决方案类似的问题:

<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?

回答

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, ''); 
}) 
0

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

Brian的回答中删除,而不是隐藏它的文本(这是更具成本萨维,如果你不需要的文本后面再说)。如果在任何情况下,你真的需要隐藏它以备将来参考,这将成为诀窍。我也倾向于使用更精确的正则表达式。布莱恩将删除方括号内的所有内容。只有当两个数字之间用逗号分隔时,上面的那个才会匹配。

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

捕获组说明 - >https://stackoverflow.com/a/6419076/7081773

0

既然你问到表格单元格,要在零和限制只是你<td>,以防万一你有其他地方的类似文本:

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