我正在尝试验证用户名字段。该字段必须包含数字,字母和特殊字符。
这种模式=" [A-Za-z0-9]"代表带有数字和字母的用户名。
模式应该是什么?
答案 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,'')">