我有一個帶有contentEditable屬性的 div,我很難從字串中提取第一個文本出現。
我正在使用它innerHTML來獲取文本(我需要使用它,不能使用innerText或textContent)并且它帶有很多<br>.
字串將是這樣的:
'<br>這是一段文字,<br> <br>另一段文字'。我只需要This is some text沒有<br>.
字串將始終<br>在其中,并且 的位置<br>可能會有所不同。
我嘗試使用replaceAll('<br>', '')并且它回傳'This is some text Another piece of text'但我只需要第一次出現'This is some text'。
uj5u.com熱心網友回復:
您可以使用string.split()by 來劃分內容<br>,然后通過一個簡單的過濾器運行它,該過濾器將洗掉陣列中的任何空專案,最后選擇陣列中的第一個專案,這將是您想要的文本。
let fragment = document.querySelector('div.content').innerHTML.split('<br>').filter(a => a.trim())[0].trim() ;
console.log(fragment);
<div class='content'>
<br>
<br> <br>
This is some text <br>
<br>
<br> This is some more text <br>
</div>
uj5u.com熱心網友回復:
嘗試
function getFirstNonBlankSubstring(text, separator) {
const array = text.split(separator);
for (const substring of array) {
if (substring.trim()) {
return substring;
}
}
}
getFirstNonBlankSubstring(element.innerHTML, '<br>')只要您可以依靠看起來完全相同的標簽,就應該為您提供所需的東西。<br>
如果不能,則可能需要遍歷 DOM 以查找文本節點。
uj5u.com熱心網友回復:
你可以這樣做
//get the text and remove white space from left
var readText = document.getElementById("content").textContent.trimLeft();
//How many splits you want out
var freeSpaces = 3;
//
var splittext = readText.split(' ');
var newText = splittext.slice(0, freeSpaces);
//final text
var finalText = newText.join(' ');
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/370142.html
標籤:javascript html
