我想問一下,我想統計demo中的文字數量,但是忽略所有空格!目前我只能使用trim()忽略文本前后的空格,但是文本之間的空格仍然會被計算在內。我希望這個例子console.log中console.log的值應該是13,字數,但是現在結果變成了17。如何忽略字之間的空格?
$('.demo').each(function(){
$(this).text((i, t) => t.trim());
let textlength = $(this).html().length;
console.log(textlength);
})
.demo{
white-space:pre;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="demo">
lorem test demo
</p>
uj5u.com熱心網友回復:
我認為最簡單的方法是用空替換所有空格。
首先,要弄清楚什么是空白,什么不是,我們可以使用正則運算式。
/\s /g
這意味著在整個字串中全域查找任何型別的空間。
那么這只是一個呼叫的問題 .replace()
text.replace(/\s/g, '');
uj5u.com熱心網友回復:
$('.demo').each(function(){
$(this).text((i, t) => t.trim());
let textlength = $(this).html().replace(/\s /g, '').length;
console.log(textlength);
})
我們可以使用正則運算式在計算長度之前洗掉所有空格。
uj5u.com熱心網友回復:
您可以match針對所有非空白字符。它將生成一個陣列,您可以檢查它的長度。
$('.demo').each(function() {
const re = /[^\s-]/g;
const match = this.textContent.match(re);
console.log(match.length);
});
.demo{ white-space:pre; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="demo">
lorem test demo
</p>
uj5u.com熱心網友回復:
您可以使用string.replaceAll(' ', '')或str.replace(/ /g, '')洗掉字串中的所有空格。但是可能仍然有空白空間,因此在替換后使用修剪是個好主意。
$('.demo').each(function(){
let textTrimmed = $(this).text().replaceAll(' ', '').trim()
console.log(textTrimmed.length);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="demo">
lorem test demo
</p>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/394567.html
標籤:javascript 查询
