html - 输入标记限制为字母和数字

时间:2018-05-14 02:01:08

标签: html regex html5

如何将input标记设置为仅使用字母和数字?我不想要标点符号和其他内容。

我试过了:

<input maxlength="12" v-model="profile.name" pattern="[a-zA-Z0-9]">

但它没有用。我仍然可以使用!@#$和所有的标点符号。

4 个答案:

答案 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
 }