国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > HTML5 > 正文

處理textarea中的換行和空格

2024-09-05 07:23:10
字體:
來源:轉載
供稿:網友

當我們使用 textarea 在前臺編輯文字,并用 js 提交到后臺的時候,空格和換行是我們最需要考慮的問題。在textarea 里面,空格和換行會被保存為/s/n,如果我們前臺輸入和前臺顯示的文字都是在 textarea 里面,其實并不需要做任何處理,你在 textarea 里面編寫的樣式會按照你之前編輯時候的樣式,正確的顯示出來。

那么如果你需要 textarea 編輯提交的文字,從后臺返回之后,不是顯示在 textarea 里面,那么就需要考慮處理空格和換行啦。

其實之前在接觸的時候,完全沒有考慮過這些問題,也是因為最近做的項目里面有一個這樣子的需求,要求用戶在 textarea 輸入文字,提交之后以文章的格式顯示在頁面上。不管用戶輸入的時候打了多少空格,默認每段文字都只縮進2個字符,且要考慮用戶上傳的詩歌形式,也就是每個段落之間可能有兩行空白。總而言之一句話總結呢,就是—去掉用戶的輸入的空格,保留段落之間的換行。

那么我最終的做法就是,在保存的時候還是不做任何處理,直接保存到后臺。顯示的時候,從后臺獲取到文本之后,去掉文中的所有空格,然后顯示在<pre>標簽里面。

這里我用一個小例子來示意一下textarea在各種情況下的保存和顯示。首先創建一個簡單的 html 頁面,為了方便獲取數據和顯示,我引入 vue 來處理數據,給提交按鈕綁定一個點擊事件,點擊確定之后,顯示在下面。基本的頁面結構和 js 如下:

<div class="app">    <p>請輸入內容:</p>    <textarea name="t1" rows="8" cols="80" v-model="text1"></textarea>    <button>提交</button>    <p>顯示的內容:</p>    <textarea name="t2" id="" cols="80" rows="8" v-model="text2"></textarea></div>// js部分const vm = new Vue({    el:'#app',    data:{        text1:'',        text2:''    },    methods:{        submitText(){            this.text2 = this.text1;        }    }})

不處理空格和換行 顯示在 textarea 里面

這一步就很簡單了,直接點擊提交,可以看到效果,如下圖。在未做任何處理的情況下,保留了所有的空格和換行,適合保存再編輯。

不處理空格和換行 顯示在 div 里面

把剛剛第二個 textarea 替換成 div ,效果如下圖。可以看到空格和換行符都沒有被處理出來,直接被忽略掉了。

<div id="app">    <p>請輸入內容:</p>    <textarea name="t1" rows="8" cols="80" v-model="text1" ></textarea>    <button @click="submitText">提交</button>    <p>顯示的內容:</p>    <p>{{text2}}</p></div>

不處理空格和換行 顯示在 pre 標簽里面

將 div 替換成 pre 標簽,將提交的文本顯示在 pre 標簽里面。pre 元素可定義預格式化的文本。被包圍在 pre 元素中的文本通常會保留空格和換行符,他比較常見的應用就是用來顯示代碼,在技術網站和博客的頁面里面,pre 標簽都是用來包裹代碼塊的。

可以從下圖的效果看出,pre 標簽也可以完全實現保留用戶所輸入的空格和換行,看上去似乎能夠達到我的基本需求了。那么接下來的問題就是,如何去掉空格,并且實現自動縮進2個字符。

<div id="app">    <p>請輸入內容:</p>    <textarea name="t1" rows="8" cols="80" v-model="text1" ></textarea>    <button @click="submitText">提交</button>    <p>顯示的內容:</p>    <pre>{{text2}}</pre></div>

那么我試試直接給 pre 標簽設置 css 屬性text-index:2em;?這樣能夠實現需求嗎?答案顯然是不行,因為這個屬性規定的是塊級元素首行文本的縮進,而這里從始至終都只有一個塊級元素 pre ,顯然是不能實現。而且我們還要考慮到用戶自己輸入的空格。

替換空格保留換行

既然直接顯示行不通,看來還是必須要處理文本,那我們就處理一下。首先嘗試,去掉所有的空格,首先想到的就是trim()方法。思路就是,以換行符為分割,獲取到每一段文本,然后用trim()方法去掉文本前后的空格,用

標簽把每段文字包裹起來,再把每一段用<br>換行標簽拼接起來。同時,不用pre標簽來顯示文本了,直接將處理過后的的 html 片段插入到 div 標簽里面,這里用到的是 vue 的 v-html 屬性。

<div id="app">    <p>請輸入內容:</p>    <textarea name="t1" rows="8" cols="80" v-model="text1" ></textarea>    <button @click="submitText">提交</button>    <p>顯示的內容:</p>    <div v-html="text2" style="text-indent:2em;"></div></div>// js部分submitText(){    let arr = [];    this.text1.split('/n').forEach(item=>arr.push(`<p>${item.trim()}</p>`));    this.text2 = arr.join('<br>');}

如下圖所示,基本實現自動縮進和保留換行啦。

下面我們輸入一段詩歌,加上一些樣式,看看最終效果如何:

再輸入一段文章,輸入的時候打亂文章的縮進,可以看到不管我們如何縮進,顯示效果始終都是縮進兩個字符,那么就實現需求啦!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
福利视频网址导航| 91看片在线观看| 男人天堂亚洲| 欧美日韩综合高清一区二区| 精品a在线观看| 亚洲第一成年免费网站| 欧美专区日韩| 天堂亚洲精品| 精品视频一二三| 免费午夜一级| 国产私人尤物无码不卡| 在线观看av网站永久| 激情丁香在线| 国产二区三区在线| 狂野欧美性猛交xxxx乱大交| 女人色在线免费视频| 最近最好的中文字幕2019免费 | gogo在线高清视频| 国产午夜在线观看| 日本啊v在线| 国产超碰精品在线观看| 免费午夜一级| 91极品在线| 国产美女视频一区二区二三区| 91社区在线观看| 中文字幕在线永久在线视频| www.狠狠插| 中文产幕区在线观看| 中文字幕网在线| wwwww在线观看免费视频| 国产福利在线| 国产区在线视频| 最近中文字幕av免费高清| 午夜在线不卡| 亚洲视频网站在线| 国产欧美久久久久久久久| 国产美女在线免费观看| 免费国产视频| h网站免费在线观看| 亚洲综合在线网| av资源网站在线观看| 亚洲欧美综合乱码精品成人网| 91欧洲在线视精品在亚洲| 国产一级黄色片免费| 亚洲一区免费在线| 99免费视频| 午夜在线视频| 黄色国产网站在线观看| 黄色毛片在线| 天堂资源最新在线| 中文字幕第一页在线| 国产视频二区在线观看| 国产精品入口麻豆免费| 国产成人无吗| 日本啊v在线| 尤物网在线观看| 国产区成人精品视频| 国产成人久久精品77777| 在线观看精品视频一区二区三区| 2021av天天| a级在线观看| 最新亚洲精品国自产在线观看| 国产黄色免费看| 免费观看一二区视频网站| 国产在线中文字幕| 国产日本韩国在线播放| 影音先锋在线中文字幕| 黄色毛片在线看| 永久免费av网站| 超碰免费在线观看| 中文一区在线观看| 国产女王在线**视频| 亚洲欧美精品日韩欧美 | 中文一区在线观看| 免费观看久久久久| 国产二级c片l毛片| 粉嫩av一区| 在线观看av网站永久| 国产美女福利在线观看| 性网站在线看| 国产二区在线播放| 国产乱精品一区二区三区| 在线播放www| 国产日本视频| 99热在线观看免费| 欧美日韩亚洲第一页| 91在线看片| 国产精品蜜臀| 中文字幕在线免费| 天天操天天操一操| 黄色片免费在线| 亚洲久草视频| 精品国内一区二区三区免费视频| 成在线人视频免费视频| 久久国产情侣| wwwww在线观看免费视频| 国产色婷婷在线| 最新中文字幕av专区| 久热免费在线视频| 欧美xxxxx性| gogo在线观看| 人成在线免费视频| 欧美性猛交xxxx免费看蜜桃| 亚洲视频手机在线观看| 在线影视一区| 天堂在线国产| 交换国产精品视频一区| 激情亚洲综合网| 九九色在线观看| 91超碰国产在线| 国产偷窥老熟盗摄视频| 国产午夜在线视频| 国产传媒在线播放| 日本aⅴ写真网站免费| 国产在线超碰| 国产三级视频在线| 在线国产福利网站| 精品中文字幕不卡在线视频| 最新国产在线精品91尤物| 999精品网| 开心婷婷激情| 2018中文字幕在线| 免费影视观看网站入口| 最近中文字幕在线中文视频 | 国产视频二区三区| 国产免费麻豆视频| 国产精品视频一区二区免费不卡| 开心快乐六月丁香婷婷| 中文字幕日本在线观看| 国产一二三区在线视频| av大片在线播放| 成人福利视频导航| 在线激情网站| 国产精品伦理一区二区三区| 在线中文免费视频| 国产美女被遭强高潮免费网站| 国产极品视频| 粉嫩av一区| 免费网站看黄yyy222| 在线激情网站| 91看片在线观看| 最近免费中文字幕大全免费第三页| 国产二区三区四区| 国产精品一区二三区| 在线中文av| 国产精品入口麻豆免费看| 超碰在线免费播放| 性网站在线观看| 亚色视频在线观看| 在线观看免费视频一区二区三区| 国产极品视频| 2019年中文字幕| 精品推荐国产麻豆剧传媒| 国产精品人人爱一区二区白浆| 久久这里精品| 日本动漫同人动漫在线观看| 亚洲国产aⅴ精品| 精品三级久久久久久久电影聊斋| 国产精品视频一区麻豆| 国产精品作爱| 国产麻豆视频网站| 国产视频福利| 国产对白国语对白| 亚洲天堂久久久| www.香蕉视频在线观看| 亚洲欧美精品日韩欧美| a级在线观看| 国产在线你懂得| 国产精选在线观看| 中文字幕色视频| 国产人成高清视频观看| 精品久久九九| 免费特级黄毛片| 国产剧情在线一区| 午夜视频免费在线观看| 国产网红在线| 羞羞视频在线观看免费| 成人免费一区二区三区牛牛 | 日本黄色免费网址| 九九视频在线播放| 国产精品视频一区二区免费不卡| 国产福利在线看| 日韩国产成人| 国产探花视频在线观看| 精品国产美女福利到在线不卡| 欧美性猛交xxxx免费看久久| 国产一二三四| 玖玖在线视频| 中文乱码字幕高清在线观看| 人人澡人人爽| 国产黄大片在线观看画质优化| 亚洲天堂久久久| 天堂中文在线视频| 亚洲国产日韩成人综合天堂| 中文字幕在线观看日本| 在线观看中文字幕一区| 国产裸舞福利在线视频合集| 中文在线有码| 国产黄色在线看| 国产乱妇乱子|