我正在尝试限制数字类型输入字段中允许的字符集。问题是我找不到“覆盖”输入字段中的文本以删除无效字符的方法。
这是我测试的代码:
<template>
<div>
<input @input="validate" :model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
</div>
</template>
<script>
export default {
data: () => ({
message: ""
}),
methods: {
validate(input){
// the regex is allowing only numbers and either a comma or a period
this.message = input.target.value.match(/[0-9]*(,|\.)?[0-9]*/gm)[0]
}
}
}
</script>
输入字段中的所有字符都保持不变,而“消息”变量是经过解析的验证字符串。如何将“消息”字符串放入输入字段?
编辑:这是上面代码的jsfiddle。
嗯,:model
是一种v-bind:model
不要与v-model
for Vue 指令混淆的简写(我们想要这个)。所以这样做:
<input @input="validate" v-model="message" placeholder="edit me">
但是,我建议为此目的使用Vue-Masked-Input组件或vue-inputmask(我个人的偏好),因为它们通过确保预定义的格式来帮助输入。这对于日期、数字、电话号码等很有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句