我有一个输入字段,我们称其为名字。我想让用户只键入字母和撇号。没有数字和其他特殊符号。逻辑是这样的:
我怎么能意识到这一点?我一直在寻找一些Vue验证器和蒙版,但没有找到我需要的任何东西。验证程序只检查输入字段,更好地掩盖套件,但是必须具有固定范围的字符串。
有什么想法吗?或者,也许这一切都变得容易得多,而我却使其变得复杂了?
答案 0 :(得分:2)
如果只希望用户可以键入字母,则可以执行v-on:keypress
并检查事件功能。
<input type="text" v-model="firstName" v-on:keypress="isLetter($event)">
然后是方法:
isLetter(e) {
let char = String.fromCharCode(e.keyCode); // Get the character
if(/^[A-Za-z]+$/.test(char)) return true; // Match with regex
else e.preventDefault(); // If not match, don't add to input text
}
此处的示例:https://codesandbox.io/s/festive-buck-hm4fd?file=/src/App.vue
如果您还想允许单引号,则可以将正则表达式模式更改为^[A-Za-z\']+$
我还添加了计算属性,以检查输入值是否有效,以防万一您仍然希望允许用户输入除字母以外的其他字符并显示错误
答案 1 :(得分:2)
当 HTML 为您做这件事时怎么样?
<input type="text" pattern="[a-zA-Z]+">