2017-04-07 10 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とセル3の[130、70]一部の[100100]の部分を隠すために使用することができますか?

私は同様の問題のために別の答えに、この解決策を見つけた:

<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>')

ブライアンの答えではなく、それを隠すのテキストを削除します。いずれにしても、将来の参照のために実際に隠す必要がある場合は、このトリックを行います。私はまた、より正確な正規表現を使用する傾向があります。ブライアンは角括弧で囲まれたすべてを削除します。上位のものは、コンマで区切られた2つの数字がある場合にのみ一致します。

正規表現の参照 - グループのキャプチャ>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); 
}); 
関連する問題