亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

處理textarea中的換行和空格

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

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

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

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

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

這里我用一個小例子來示意一下textarea在各種情況下的保存和顯示。首先創建一個簡單的 html 頁面,為了方便獲取數據和顯示,我引入 vue 來處理數據,給提交按鈕綁定一個點擊事件,點擊確定之后,顯示在下面?;镜捻撁娼Y構和 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 ,效果如下圖??梢钥吹娇崭窈蛽Q行符都沒有被處理出來,直接被忽略掉了。

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

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本精品在线视频| 一区二区国产精品视频| 欧美国产在线电影| 欧美成人免费全部观看天天性色| 精品视频一区在线视频| 国产精品av网站| 91久久精品久久国产性色也91| 日韩av电影手机在线| 精品久久久久国产| 日韩成人黄色av| 青青草成人在线| 精品亚洲精品福利线在观看| 亚洲xxxx做受欧美| 欧美www在线| 亚洲国产精彩中文乱码av| 精品国产福利视频| 国产丝袜一区视频在线观看| 亚洲伊人一本大道中文字幕| 亚洲成人久久网| 国产不卡一区二区在线播放| 亚洲视频在线观看视频| 欧美精品第一页在线播放| 日韩欧美一区二区在线| 久久成人18免费网站| 久久视频在线直播| 日韩亚洲国产中文字幕| 色妞在线综合亚洲欧美| 色妞一区二区三区| 日韩精品久久久久| 91亚洲国产成人久久精品网站| 日韩一区二区福利| 亚洲精品色婷婷福利天堂| 4k岛国日韩精品**专区| 97在线精品国自产拍中文| 欧美孕妇毛茸茸xxxx| 日韩在线视频观看正片免费网站| 国产成人精彩在线视频九色| 欧美三级欧美成人高清www| 欧美色视频日本高清在线观看| 国产精品视频自在线| 久久99精品国产99久久6尤物| 米奇精品一区二区三区在线观看| 国内免费久久久久久久久久久| 国产日韩欧美日韩| www国产91| 狠狠躁夜夜躁人人爽超碰91| 青青久久av北条麻妃黑人| 中日韩美女免费视频网址在线观看| 久热精品视频在线| 国产精品中文字幕在线观看| 成人国产精品久久久| 91免费在线视频| 久久久久在线观看| 亚洲第一页自拍| 欧美日韩亚洲精品内裤| 中文字幕视频一区二区在线有码| 精品久久久久久亚洲国产300| 久久久久久久999| 欧美激情在线一区| 欧美第一黄网免费网站| 国产欧美在线观看| 自拍视频国产精品| 精品国产乱码久久久久酒店| 国模极品一区二区三区| 欧美成人精品在线播放| 久久国产色av| 精品无人区乱码1区2区3区在线| 26uuu国产精品视频| 国产激情综合五月久久| 国产精品久久77777| 欧美激情亚洲自拍| 欧美电影免费观看| 国产精品视频永久免费播放| 中文字幕v亚洲ⅴv天堂| 亚洲精品国精品久久99热一| 日韩免费在线播放| 欧美人在线视频| 国内精品久久久久久| 97碰在线观看| 欧美黄色www| 国产日韩精品电影| 尤物tv国产一区| 亚洲图中文字幕| 中文字幕在线成人| 色噜噜国产精品视频一区二区| 91视频免费网站| 91成品人片a无限观看| 正在播放国产一区| 中文字幕精品一区久久久久| 日韩在线观看免费高清完整版| 中文字幕亚洲无线码在线一区| 77777少妇光屁股久久一区| 欧美激情亚洲综合一区| 久久噜噜噜精品国产亚洲综合| 91欧美精品午夜性色福利在线| 国产一区二区在线播放| 国内外成人免费激情在线视频| 69av成年福利视频| 久久久国产一区二区三区| 国内成人精品视频| 国产精品爱久久久久久久| 国产一区二区三区在线观看网站| 日韩精品视频在线播放| 69视频在线播放| 国产一区玩具在线观看| 国产精品精品久久久久久| 亚洲黄页视频免费观看| 日韩精品在线免费| 亚洲欧美精品在线| 亚洲免费视频一区二区| 国内精品一区二区三区四区| 亚洲黄页视频免费观看| 欧美高清视频在线播放| 91精品国产综合久久香蕉的用户体验| 亚洲国产高清自拍| 91久久久国产精品| 亚洲天堂一区二区三区| 国产综合福利在线| 久久av红桃一区二区小说| 国产精品偷伦视频免费观看国产| 91日本在线视频| 久久国产精品网站| 久久久久久久久久久免费| 国产精品久久久久久久久久久不卡| 亚洲福利影片在线| 日韩av在线看| 97在线视频免费观看| 91精品久久久久久久久久久久久久| 日韩经典中文字幕| 国产精品678| 伊人伊成久久人综合网小说| 国产91网红主播在线观看| 538国产精品视频一区二区| 久久深夜福利免费观看| 亚洲国产精品国自产拍av秋霞| 日本成人免费在线| 91九色精品视频| 欧美激情国产日韩精品一区18| 国产精品99久久久久久白浆小说| 最新国产成人av网站网址麻豆| 欧美精品激情在线| 亚洲精品中文字幕av| 久久精品亚洲一区| 国产午夜精品一区理论片飘花| 国产欧美精品在线| 成人黄色免费片| 精品国产乱码久久久久酒店| 欧美性猛交xxxx乱大交3| 亚洲精品按摩视频| 久久久精品国产网站| 久久精品国产亚洲7777| 成人情趣片在线观看免费| 在线播放日韩精品| 日韩精品亚洲精品| 4k岛国日韩精品**专区| 久久精品国产久精国产思思| 欧美激情亚洲综合一区| 日韩电影免费观看在线观看| 日韩在线免费视频观看| 日韩av大片在线| 黑人精品xxx一区一二区| 2019中文字幕在线观看| 欧美精品久久久久| 日韩视频中文字幕|