繁体   English   中英

正则表达式验证 Javascript 中的用户名

[英]Regex to validate username in Javascript

以下是我尝试根据下面提到的标准验证的正则表达式,但在某些情况下它失败了。 让我知道我在这里做错了什么。

正则表达式-

/[a-z]|\d|\_{4, 16}$/.test(username)

标准 -

允许的字符是:

  • 小写字母
  • 数字
  • 下划线
  • 长度应介于 4 到 16 个字符之间(均包含在内)。

代码

 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM