[英]Regex to validate username in Javascript
以下是我尝试根据下面提到的标准验证的正则表达式,但在某些情况下它失败了。 让我知道我在这里做错了什么。
正则表达式-
/[a-z]|\d|\_{4, 16}$/.test(username)
标准 -
允许的字符是:
代码
function validateUsr(username) { res = /[az]|\d|\_{4, 16}$/.test(username) return res } console.log(validateUsr('asddsa')); // Correct Output - true console.log(validateUsr('a')); // Correct Output - false console.log(validateUsr('Hass')); // Correct Output - false console.log(validateUsr('Hasd_12assssssasasasasasaasasasasas')); // Correct Output - false console.log(validateUsr('')); // Correct Output - false console.log(validateUsr('____')); // Correct Output - true console.log(validateUsr('012')); // Correct Output - false console.log(validateUsr('p1pp1')); // Correct Output - true console.log(validateUsr('asd43 34')); // Correct Output - false console.log(validateUsr('asd43_34')); // Correct Output - true
您可以将模式连接到单个字符 class 并将限制量词应用于 class,而不仅仅是_
模式。 请注意,空格在模式中是有意义的,并且{4, 16}
匹配{4, 16}
字符串,它不会被解析为量词。
您可以使用
var regex = /^[az\d_]{4,16}$/; function validateUsr(username) { return regex.test(username) } console.log(validateUsr('asddsa')); // Correct Output - true console.log(validateUsr('a')); // Correct Output - false console.log(validateUsr('Hass')); // Correct Output - false console.log(validateUsr('Hasd_12assssssasasasasasaasasasasas')); // Correct Output - false console.log(validateUsr('')); // Correct Output - false console.log(validateUsr('____')); // Correct Output - true console.log(validateUsr('012')); // Correct Output - false console.log(validateUsr('p1pp1')); // Correct Output - true console.log(validateUsr('asd43 34')); // Correct Output - false console.log(validateUsr('asd43_34')); // Correct Output - true
^[az\d_]{4,16}$
-查看它的演示- 模式意味着:
^
- 字符串的开头[
- 字符开头 class:
az
- ASCII 小写字母\d
- ASCII 数字_
- 下划线]{4,16}
- class 结束,重复四到十六次$
- 字符串结束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.