如何将input
标记设置为仅使用字母和数字?我不想要标点符号和其他内容。
我试过了:
<input maxlength="12" v-model="profile.name" pattern="[a-zA-Z0-9]">
但它没有用。我仍然可以使用!@#$
和所有的标点符号。
答案 0 :(得分:2)
在表单提交上检查表达式。所以你必须为检查放置一个表单元素
<form action="/x.php">
Random:<input maxlength="12" v-model="profile.name" pattern="[a-zA-Z0-9]*">
<input type="submit">
</form>
答案 1 :(得分:1)
你可以看看: https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_ev_onblur_onfocus 您可以/应该编写一个小函数来检查非法/不允许的字符。 您可以通过传递一种检查来扩展使用范围,这样您就可以检查错误的电子邮件地址,不允许的字符,空字段等。 “
答案 2 :(得分:0)
试试这个[^ A-Za-z0-9-_]
答案 3 :(得分:0)
我找到了正则表达式:
/^[a-z0-9]+$/i
这将只允许使用字母数字。由于我使用vue.js
,我将使用watch
来监控变量:
'profile': {
handler: function(newVal, oldVal) {
var self = this;
var regex = /^[a-z0-9]+$/i;
if (!regex.test(newVal.name)) {
console.log("character not allow!");
}
},
deep: true
}