我想隐藏表格单元格中的子字符串。让我们假设表格如下:
<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?
答案 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 );
});