正则表达式-不允许大写

时间:2020-05-03 18:22:04

标签: javascript regex

我目前正在验证前端(Vuetify)和后端(Laravel)上的用户名,如何在此Regex中添加支票以排除大写字符:

^(?!.*\.\.)(?!.*\.$)[^\W][\w.]{0,29}$

代替\w单词-匹配任何单词字符(字母数字和下划线)),我已经尝试过类似的方法,但是仍然允许使用大写字符:

^(?!.*\.\.)(?!.*\.$)[^\W][a-z0-9_.]{0,29}$

这些字符串中的期望结果验证:

  • riegiejeyaranchen
  • riegie.jeyaranchen
  • _riegie.jeyaranchen
  • riegie ._。jeyaranchen
  • riegie .___。wewsd

这些失败:

  • Riegie.Jeyaranchen
  • .riegie
  • riegie..jeyaranchen
  • riegie。
  • Riegie

1 个答案:

答案 0 :(得分:1)

您可以使用:

^(?!.*\.\.)(?!.*\.$)[a-z0-9_][a-z0-9_.]{1,28}$

将满足您的要求。 [^\W]允许29个字符检查之前的任何字母数字字符或下划线。这也是一个双重否定词,更容易编写,\w

https://regex101.com/r/Bh6Tbd/2/相比,您可以在https://regex101.com/r/Bh6Tbd/3/看到它的功能。