-
// 如果类型为 'digit',应用特定验证
if (this.type === 'digit') {
// 移除所有无效字符,保留数字、点和减号
value = value.replace(/[^0-9.-]/g, '');
// 确保减号只能出现在开头
if (value.includes('-') && value.indexOf('-') !== 0) {
value = value.replace(/-/g, ''); // 移除所有减号
// 目前不需要
// value = '-' + value; // 在开头添加一个减号
}
// 确保只有一个点
const parts = value.split('.');
if (parts.length > 2) {
value = parts[0] + '.' + parts.slice(1).join(''); // 合并除第一个点以外的部分
}
// 限制小数部分只能有两位
if (parts.length === 2) {
parts[1] = parts[1].substring(0, 2); // 只保留两位小数
value = parts.join('.'); // 合并整数部分和两位小数部分
}
}// 如果类型为 'number',应用特定验证
if (this.type === 'number') {
// 移除所有无效字符,保留数字和减号
value = value.replace(/[^0-9-]/g, '');
// 确保减号只能出现在开头
if (value.includes('-') && value.indexOf('-') !== 0) {
value = value.replace(/-/g, ''); // 移除所有减号
// 目前不需要
// value = '-' + value; // 在开头添加一个减号
}
// 确保只有一个减号
if ((value.match(/-/g) || []).length > 1) {
value = value.replace(/-/g, ''); // 移除所有减号
value = '-' + value; // 在开头添加一个减号
}
}// vue 原生的方法 return 出去
this.$emit('input', value);
setTimeout(()=>{
// 当前model 赋值
this.defaultValue = value;
console.log(this.defaultValue)
},0)
这是我在input中的input事件中加的方法 例如小数处理输入第三位时总会闪一下第三位小数然后清空请问有没有什么方法可以阻止输入的?
0 个回复