1. 程式人生 > 其它 >van-field校驗資料中文輸入問題

van-field校驗資料中文輸入問題

<div class="super-info">
               <div class="super-title name-title">姓名</div>
               <van-field class="super-my-field-input" v-model="subStoreObj.userName" :formatter="formatters" :rules="[
         {validator: validatorUserName, message:'', trigger:'onBlur'}
         ]"
type="text" @focus="userNameError=false" autosize clearable maxlength="10" placeholder="請輸入您的姓名,最多可輸入10個字元" show-word-limit center/> <div v-show="userNameError" class="super-van-field__error-message">姓名不能為空</div> <
/div> <div class="super-info"> <div class="super-title mobile-title">聯絡方式</div> <!-- 輸入手機號,調起手機號鍵盤 --> <!-- { required: true, message: '請填寫您的手機號碼!' }, --> <van-field class="super-my-field-input"
v-model="subStoreObj.phone" type="tel" name="validator" :rules="[ { validator: validatorPhone} ]" @focus="phoneError=false" autosize clearable maxlength="11" placeholder="請輸入您的11位聯絡電話" show-word-limit center /> <div v-show="phoneError" class="super-van-field__error-message">請輸入正確的電話格式</div> </div>

實現的效果如下:
在這裡插入圖片描述

解析:
對姓名校驗,並對emoji表情過濾,在

method:{
...
 validatorUserName (val) {
 //解決目的是:解決手機上輸入中文時,直接點確認輸入的英文通過val獲取為空問題
      val = this.subStoreObj.userName
      console.log("name:", val)
      if (val == '' || val == undefined) {
        this.userNameError = true
        this.superSubmitBoxStyle = false
      }
      //提交按鈕
      this.checkSubmit()
    },
     formatters(value){
      //過濾emoji表情輸入
      let reg = /[^\u0020-\u007E\u00A0-\u00BE\u2E80-\uA4CF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF\u0080-\u009F\u2000-\u201f\u2026\u2022\u20ac\r\n]/g;
      return value.replace(reg, '');
    },
...
}

解決重點注意寫法:
{validator: validatorUserName, message:’’, trigger:‘onBlur’}