js實現文本分段


本菜鳥的第一篇博文,最近在學習js,可能有很多不嚴謹或者不正確的地方,歡迎指正

在.net開發中,有時候會從后台數據庫拉來一大串文本,放到頁面上顯示。那么問題來了,大段的文本中需要分段,一般分段在后台都用轉義字符\n來表示,但是我們現在要把文本放入到一個<div>當中,但是dom元素節點只有<textarea>可以識別轉義字符。

我們可以通過javascript來實現這個功能,比方說我們要把這一段文字顯示在網頁上:

Aqeela Asifi,

who fled to Pakistan as a young woman,

has spent her life teaching other Afghan refugees.

 

它在后台作為一個string變量的值是這樣:“Aqeela Asifi,\r\nwho fled to Pakistan as a young woman,\r\nhas spent her life teaching other Afghan refugees.”

通過后台c#的replace方法將轉義字符替換成‘~’傳到了前端頁面上,具體操作這里不多說了,變成如下這樣:

“Aqeela Asifi,~nwho fled to Pakistan as a young woman,~has spent her life teaching other Afghan refugees.”

現在可以用js來處理了,js處理的邏輯是根據文本中的‘~’字符來分割並將分割后的字符串前后加上<p></p>元素節點,這樣就組裝成html語言了,然后通過innerhtml屬性添加到一個<div>中顯示在頁面上

完整的html代碼:

<html>

<body>
<div id="content"></div>
</body>
<script src="Scripts/jquery-1.7.1.js"></script>
<script>
//輸出的內容
var content = "Aqeela Asifi, ~ who fled to Pakistan as a young woman, has spent her life teaching other Afghan refugees. ~ Aqeela Asifi ~ For her efforts, Ms. Asifi, who is 49, has won the 2015 UNHCR Nansen Refugee award. She also gets $100,000 to help pay for her education projects."
//單獨段落
para = ""
//添加<p>元素處理后的段落
inner = ""
for (a = 0; a < content.length;) {
if (content[a] != '~') {
para += content[a];//根據'~'字符來對內容分割
}
else {
inner += insertparagraph(para);//分割的單一段落內容放入到<p>元素中
para = "";//清空
}
a++;
}
inner += insertparagraph(para);//添加最后一段內容
document.getElementById("content").innerHTML = inner;

//放入到<p>元素中
function insertparagraph(text) {
var str = "<p>"
str += text;
str += "</p>"
return str;
}
</script>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM