国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù)

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 19:44:44
文檔

如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù)

如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù):這次給大家?guī)?lái)如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù),使用Vue控制字符和字節(jié)顯示個(gè)數(shù)的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。需求需求:結(jié)合Vue實(shí)現(xiàn)下面的效果輸入框中最多輸入16個(gè)字符漢字最多顯示5個(gè),超出部分以...顯示英文最多顯示10個(gè),超
推薦度:
導(dǎo)讀如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù):這次給大家?guī)?lái)如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù),使用Vue控制字符和字節(jié)顯示個(gè)數(shù)的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。需求需求:結(jié)合Vue實(shí)現(xiàn)下面的效果輸入框中最多輸入16個(gè)字符漢字最多顯示5個(gè),超出部分以...顯示英文最多顯示10個(gè),超
這次給大家?guī)?lái)如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù),使用Vue控制字符和字節(jié)顯示個(gè)數(shù)的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。

需求

需求:結(jié)合Vue實(shí)現(xiàn)下面的效果

  1. 輸入框中最多輸入16個(gè)字符

  2. 漢字最多顯示5個(gè),超出部分以...顯示

  3. 英文最多顯示10個(gè),超出部分以...顯示

實(shí)現(xiàn)

搭建簡(jiǎn)單頁(yè)面,并設(shè)置簡(jiǎn)單樣式

在正式開(kāi)始寫(xiě)核心代碼之前,要先把代碼結(jié)構(gòu)搭建起來(lái),這樣后面寫(xiě)的時(shí)候就會(huì)看著簡(jiǎn)潔點(diǎn)了。

首先需要一個(gè)輸入框用來(lái)輸入內(nèi)容,其次需要一個(gè)元素,用來(lái)顯示輸入框中的內(nèi)容,實(shí)現(xiàn)數(shù)據(jù)的雙向綁定。

其中,輸入內(nèi)容的最大長(zhǎng)度是可以通過(guò)input標(biāo)簽的屬性來(lái)指定的。

<p id="app">
 <input v-model="txt" class="clsinp" maxlength="16" placeholder="請(qǐng)輸入內(nèi)容" type="text">
 <p class="clsmsg">
 <p>內(nèi)容:<span>{{txt}}</span></p>
 <p>輸入的字符個(gè)數(shù):<span>{{computedCharLen}}</span></p>
 <p>輸入的字節(jié)個(gè)數(shù):<span>{{computedByteLen}}</span></p>
 </p>
</p>

頁(yè)面的結(jié)構(gòu)已經(jīng)搭建完成了,那下面就是做一些簡(jiǎn)單的樣式優(yōu)化了。

* { margin: 0; padding: 0; -webkit-box-sizing: border-box; box-sizing: border-box; }
body { background: #efefef; }
.clsinp { width: 100%; height: 40px; outline: none; line-height: 40px; font-size: 16px; padding: 0 10px; margin-top: 20px; color: blue; }
.clsmsg { padding: 10px 10px; }
.clsmsg span { color: blue; }

最后一步應(yīng)該就是引入Vue,然后搭建一些簡(jiǎn)單的數(shù)據(jù)內(nèi)容。

var vm = new Vue({
 el: '#app',
 data() {
 return {
 txt: ''
 }
 },
 // 后期代碼在下面補(bǔ)充
})

ASCII范圍內(nèi)與范圍外

了解ASCII的內(nèi)容,請(qǐng)移步到http://www.asciima.com/

ASCII中包含256個(gè)字符,因此超過(guò)256之外的字符,全部都是非ASCII字符,一般情況下,漢字就是在這個(gè)范圍中。

因此,編碼不在0-255的字符可以使用正則表達(dá)式/[^\x00-\xff]/g來(lái)進(jìn)行匹配。這個(gè)時(shí)候就提供了一個(gè)思路,如果不是ASCII碼中的字符,那么就默認(rèn)它占了兩個(gè)字節(jié)。

我們修改一下頁(yè)面結(jié)構(gòu),輸出一些測(cè)試信息:

<p id="app">
 <input v-model="txt" class="clsinp" maxlength="16" placeholder="請(qǐng)輸入內(nèi)容" type="text">
 <p class="clsmsg">
 <p>內(nèi)容:<span>{{txt}}</span></p>
 <p>輸入的字符個(gè)數(shù):<span>{{computedCharLen}}</span></p>
 <p>輸入的字節(jié)個(gè)數(shù):<span>{{computedByteLen}}</span></p>
 </p>
</p>

補(bǔ)充需要的計(jì)算屬性:

computed: {
 // 獲取字符的個(gè)數(shù)
 computedCharLen() {
 return this.txt.length
 },
 // 獲取字節(jié)的個(gè)數(shù)
 computedByteLen() {
 return this.txt.replace(/[^\x00-\xff]/g, '01').length
 }
}

這個(gè)時(shí)候,我們輸入內(nèi)容,出現(xiàn)下面的效果:

這個(gè)時(shí)候會(huì)發(fā)現(xiàn),已經(jīng)實(shí)現(xiàn),ASCII碼范圍內(nèi)的占1位,超出范圍的占2位。

控制顯示的內(nèi)容

內(nèi)容顯示使用計(jì)算屬性來(lái)實(shí)現(xiàn):

<p>內(nèi)容:<span>{{computedTxt}}</span></p>
// 控制顯示的內(nèi)容
computedTxt() {
 return this.methodGetByteLen(this.txt, 10)
}

下面補(bǔ)充一下methodGetByteLen方法:

/**
 * str 需要控制的字符串
 * len 字節(jié)的長(zhǎng)度,如5個(gè)漢字,10個(gè)英文,輸入?yún)?shù)就是10
 */
methodGetByteLen(str, len) {
 // 如果字節(jié)的長(zhǎng)度小于控制的長(zhǎng)度,那么直接返回
 if (this.computedByteLen <= len) {
 return str
 }
 for (let i = Math.floor(len / 2); i < str.length; i++) {
 if (str.substr(0, i).replace(/[^\x00-\xff]/g, '01').length >= len) {
 // Math.floor(i / 2) * 這里是控制特殊情況的顯示
 // 如 '一二aaa一二三四',顯示的結(jié)果就是 '一二aaa一...'
 return str.substr(0, Math.floor(i / 2) * 2) + '...'
 }
 }
}

最終的顯示情況沒(méi)有超過(guò)最大指定長(zhǎng)度的情況

超過(guò)最大指定長(zhǎng)度(漢字輸入)

超過(guò)最大指定長(zhǎng)度(數(shù)字輸入)

超過(guò)最大指定長(zhǎng)度(漢字和字母的組合)

完整代碼

最后,把最終代碼粘貼出來(lái):

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta txt="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
 <style type="text/css">
 * {
 margin: 0;
 padding: 0;
 -webkit-box-sizing: border-box;
 box-sizing: border-box;
 }
 body {
 background: #efefef;
 }
 .clsinp {
 width: 100%;
 height: 40px;
 outline: none;
 line-height: 40px;
 font-size: 16px;
 padding: 0 10px;
 margin-top: 20px;
 color: blue;
 }
 .clsmsg {
 padding: 10px 10px;
 }
 .clsmsg span {
 color: blue;
 }
 </style>
</head>
<body>
 <p id="app">
 <input v-model="txt" class="clsinp" maxlength="16" placeholder="請(qǐng)輸入內(nèi)容" type="text">
 <p class="clsmsg">
 <p>內(nèi)容:<span>{{computedTxt}}</span></p>
 <p>輸入的字符個(gè)數(shù):<span>{{computedCharLen}}</span></p>
 <p>輸入的字節(jié)個(gè)數(shù):<span>{{computedByteLen}}</span></p>
 </p>
 </p>
</body>
</html>
<script type="text/javascript" src="./vue2.5.1.js"></script>
<script type="text/javascript">
 var vm = new Vue({
 el: '#app',
 data() {
 return {
 txt: ''
 }
 },
 // 后期代碼在下面補(bǔ)充
 methods: {
 methodGetByteLen(str, len) {
 if (this.computedByteLen <= len) {
 return str
 }
 for (let i = Math.floor(len / 2); i < str.length; i++) {
 if (str.substr(0, i).replace(/[^\x00-\xff]/g, '01').length >= len) {
 return str.substr(0, Math.floor(i / 2) * 2) + '...'
 }
 }
 }
 },
 computed: {
 // 獲取字符的個(gè)數(shù)
 computedCharLen() {
 return this.txt.length
 },
 // 獲取字節(jié)的個(gè)數(shù)
 computedByteLen() {
 return this.txt.replace(/[^\x00-\xff]/g, '01').length
 },
 // 控制顯示的內(nèi)容
 computedTxt() {
 return this.methodGetByteLen(this.txt, 10)
 }
 }
 })
</script>

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注Gxl網(wǎng)其它相關(guān)文章!

推薦閱讀:

怎樣實(shí)現(xiàn)微信小程序的自定義多選事件

如何對(duì)于create-react-app修改為多頁(yè)面支持

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù)

如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù):這次給大家?guī)?lái)如何使用Vue控制字符和字節(jié)顯示個(gè)數(shù),使用Vue控制字符和字節(jié)顯示個(gè)數(shù)的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。需求需求:結(jié)合Vue實(shí)現(xiàn)下面的效果輸入框中最多輸入16個(gè)字符漢字最多顯示5個(gè),超出部分以...顯示英文最多顯示10個(gè),超
推薦度:
標(biāo)簽: VUE 怎么 字符
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top
主站蜘蛛池模板: 欧美高清一区二区三区欧美 | 亚洲第一区se | 亚洲欧美一区二区三区 | xxxwww欧美性| 亚洲国产成人久久一区www | 欧美在线一区二区三区不卡 | 伊人久久大香线蕉综合爱婷婷 | 国产一级特黄全黄毛片 | 欧美日韩精品一区二区三区视频在线 | 国产成人久久久精品一区二区三区 | 国产精品v一区二区三区 | 国产精品成人va | 国产成人综合久久精品下载 | 国产又黄又爽的视频 | 久久久精品一区二区三区 | 国产伦精品一区二区三区高清 | 精品久久综合一区二区 | 亚洲国产成人精品女人久久久 | 美女视频黄a视频全免费网站色 | 国产一区三区二区中文在线 | 性欧美大战久久久久久久野外 | 精品日韩欧美一区二区三区 | 亚洲国产成人久久一区二区三区 | 亚洲精品国产成人99久久 | 91欧美精品 | 午夜免费福利视频 | 欧美日本日韩aⅴ在线视频 欧美日韩91 | 日韩欧美在线第一页 | 国产高清在线精品一区二区三区 | 国产精品99久久久久久www | 天天躁日日躁狠狠躁中文字幕老牛 | 国产欧美一区二区三区精品 | 成人精品一区二区激情 | zozozo性欧美禽交3 | 国产在线高清不卡免费播放 | 日韩免费播放 | 国产资源视频在线观看 | 成人一a毛片免费视频 | 亚洲欧美日本另类激情 | 日韩欧美视频二区 | 国产99久久九九精品免费 |