[element plus]計算input中英文字元長度

element本身的maxlength只能限制文字長度(中文1 = 英數1)
但實際回存資料進DB長度計算通常為字元居多

vue開立utf-8編碼專案的情況下 中文3 英數1字元
使用的公式是
const character = new TextEncoder().encode('字串123’).length
長度結果為9

跟el-input結合範例如下:

let vender = ref('') //要偵測長度的項目
let overNum = ref(false) //變更class

function maxTextDetect(){
      //字元限制40
        const maxLength = 40
        const textLength = new TextEncoder().encode(vender.value).length //算出位元數 中文字3 數字英文1
        overNum.value = textLength > maxLength;
}

將超過長度的輸入框添加errorText的class

<el-input :class="overNum?'errorText':''" v-model="vender"  @keyup="maxTextDetect()"/>

再將errorText添加上讓文字變紅的css
就能達到在畫面上警示有輸入錯誤的地方了

關於站主

Shiro

因為興趣無限擴張,一直很猶豫要不要寫一個很雜的Blog,後來還是這麼做了。

聯絡:shiro050102✦gmail.com  ✦請自行更換成@

Vue