Вы можете использовать оператор ИЛИ |
, чтобы добавить проверку numeri c -only к существующему шаблону
(^\d{9}$)|(^(\d{3}\.){2}\d{3}$)
Или сделать его более читаемым с помощью двух отдельных проверок
if (/^\d{9}$/.test(value) || /^(\d{3}\.){2}\d{3}$/.test(value))
Чтобы добавить маску, разделите проверки и измените значение, если это numeri c, например:
<input v-model="number" @blur="validateNumber">
data() {
return {
valid: false,
number: "",
};
},
methods: {
validateNumber() {
if (/^\d{9}$/.test(this.number)) {
this.number = this.number.replace(/(\d{3})(\d{3})(\d{3})/, "$1.$2.$3");
this.valid = true;
} else if (/^(\d{3}\.){2}\d{3}$/.test(this.number)) {
this.valid = true;
} else {
this.valid = false;
}
}
}