Ограничение ввода с максимальной длиной


Ограничение ввода с максимальной длиной

10.09.2020 10:26:14 Просмотров 16 Источник

Мне нужно иметь поля ввода, которые принимают только шестнадцатеричные символы и должны иметь максимальную длину.

Я могу справиться только с принятием шестнадцатеричного кода, но там, где у меня возникают проблемы, это когда я вставляю строку - недопустимые символы также подсчитываются в максимальной длине.

Вот что у меня сейчас есть:

<q-input outlined v-model="text" label="Outlined" @input="acceptHexOnly" maxlength="6"></q-input>

И:

acceptHexOnly () {
  console.log(this.text)
  this.$nextTick(() => {
    this.text = this.text.replace(/[^a-fA-F0-9\n\r]+/g, '').toUpperCase()
  })
}

Поэтому при вставке строки:

xabx12xcdxef
  • Ожидается: AB12CD
  • Фактический: AB12

Помогите!

Скрипка: https://codepen.io/keechan/pen/qBZoXPj

У вопроса есть решение - Посмотреть?

Ответы - Ограничение ввода с максимальной длиной / Restrict input with max length

Является ответом!
Jaromanda X

10.09.2020 12:31:26

удалите свойство maxlength из поля ввода и добавьте. slice(0, 6) следующим образом

acceptHexOnly () {
  console.log(this.text)
  this.$nextTick(() => {
    this.text = this.text.replace(/[^a-fA-F0-9\n\r]+/g, '').toUpperCase().slice(0, 6)
  })
}
Помочь в развитии проекта:
Закрыть X