VUE inputイベントモニタIOS手書き中国語、負けられない、解決策

4683 ワード

vueを使用してイベントをバインドする
<input class="form-input f18" 
            :class="item.inputClass ? item.inputClass : ''" 
            :type="item.type || 'text'" 
            autocomplete="off" 
            v-bind:value="item.value" 
            :id="item.id || (item.name+index)" 
            :placeholder="item.placeholder" 
            :readonly="item.readonly" 
            :disabled="item.disabled" 
            :maxlength="item.maxlength" 
            v-on:focus="inputfocus(item, index)" 
            v-on:blur="inputblur(item, $event.target.value)" v-on:input="_updateValue( $event.target.value, item, $event.target)" />
          </div>

IOSは手書きキーボードの下で、中国語を入力して、入力することができなくて、後者は鋭敏ではありませんて、原因を推測して、漢字は多くの筆画の構成があって、私達が1つの筆画を書く時、1回のinput事件を触発することができて、しかし筆画、実は漢字ではありませんて、この時、監視の検査は通じないことができて、だから最後に迂回して解決して、inputの内容に対して判別して、数字、英語、中国語、特殊文字か
_updateValue(value, item, target) {
     
      if(this.plams.ios && !(value.match(/^.*[\u4e00-\u9fa5]+$/) || value.match(".*[~!@#$%^&*()_+|<>,.?/:;'\\[\\]{}\"\sa-zA-Z0-9]+.*") || value=='')){
     
        return
      }
      this.updateValue(value, item, target)
    },