Ограничить ввод только цифр в Vue.js

Если в Vue.js вы хотите разрешить ввод только чисел в поле ввода, вы можете использовать различные методы для достижения этой цели. Вот несколько подходов, которые вы можете рассмотреть:

  1. Использование регулярного выражения (регулярного выражения). Вы можете использовать директиву v-modelвместе с регулярным выражением, чтобы ограничить ввод только числами. Например, вы можете привязать поле ввода к свойству данных и использовать событие inputдля фильтрации нечисловых символов с использованием шаблона регулярного выражения.
<template>
  <input type="text" v-model="numericInput" @input="filterNonNumeric" />
</template>
<script>
export default {
  data() {
    return {
      numericInput: ''
    };
  },
  methods: {
    filterNonNumeric() {
      this.numericInput = this.numericInput.replace(/\D/g, '');
    }
  }
};
</script>
  1. Использование пользовательской директивы. Вы можете создать пользовательскую директиву, которая управляет поведением ввода, разрешая только числовой ввод. Директива может прослушивать событие input, проверять введенные данные и соответствующим образом изменять их.
<template>
  <input type="text" v-model="numericInput" v-numeric-only />
</template>
<script>
export default {
  data() {
    return {
      numericInput: ''
    };
  },
  directives: {
    'numeric-only': {
      inserted(el) {
        el.addEventListener('input', (event) => {
          event.target.value = event.target.value.replace(/\D/g, '');
        });
      }
    }
  }
};
</script>
  1. Использование типа ввода HTML5. Вы можете использовать атрибут type="number"в поле ввода для принудительного ввода числовых значений. Однако обратите внимание, что этот подход допускает использование десятичных чисел и может различаться в разных браузерах.
<template>
  <input type="number" v-model="numericInput" />
</template>
<script>
export default {
  data() {
    return {
      numericInput: null
    };
  }
};
</script>