如何验证用户名字段html

时间:2015-12-01 13:00:45

标签: html5 pattern-matching

我正在尝试验证用户名字段。该字段必须包含数字,字母和特殊字符。

这种模式=" [A-Za-z0-9]"代表带有数字和字母的用户名。

模式应该是什么?

4 个答案:

答案 0 :(得分:1)

您的模式代表 大写字母,小写字母数字

您想要的模式如下所示:

/^[a-z\d]+$/i

说明:

  • ^ - 从字符串的开头(或带有 m 标志的行)
  • [ - 开始角色等级
  • a-z - 从a到z的字符范围
  • \d - 与0-9(任何数字)相同
  • ] - 关闭字符类
  • +一个或多个
  • $ - 字符串结尾(或带有 m 标记的行)

然后我们在实际的正则表达式//之外有标志。 我们使用i标志代表不区分大小写。

Cheatsheets / Tools

答案 1 :(得分:0)

我不知道这是否可以在原始HTML中完成(怀疑它),所以你需要一些javascript。如果您愿意,可以在“onchange”属性上调用一个函数,因此该元素将类似于:

<input id="username" type="text" onchange="validate()" name="name" value=""/>

然后javascript函数只访问元素,获取值,并检查其中的内容,如下所示:

function validate() {
     var name = document.getElementById("username").value;
     //do checking here however you like (regex, iteration, etc.)
}

但是,这需要在服务器端完成。如果你真的想要,你可以在客户端做它,但无论如何它必须在服务器端完成。我认为你的意思是在客户端,因为你用HTML标记问题,而不是服务器端语言。

答案 2 :(得分:0)

这应该可以通过javascript测试字符串中的字符串和数字。

/^[a-zA-Z0-9]+$/

答案 3 :(得分:0)

尝试

<input type="text" class="form-control" name="username" onkeyup="if (/[^|a-z0-9]+/g.test(this.value)) this.value = this.value.replace(/[^|a-z0-9]+/g,'')">