javascript - 正则表达式匹配字符串中的字母和数字,可选地具有一组特殊字符

标签 javascript regex regex-lookarounds

https://regex101.com/r/RLi59p/1

/(?=.*[0-9])(?=.*[a-z])([a-z0-9]+)[!@#$%^&*]*$/i

我制作的正则表达式匹配以下模式:

  • Test2123
  • 568test
  • test2rest
  • @test2rest
  • @test2rest@

但它无法匹配以下模式

  • @test2rest@5
  • @test2rest@test

最佳答案

您需要在您的正则表达式中做一些小的更正,并像这样将所有允许的字符定义在一起,

(?=.*[0-9])(?=.*[a-z])[a-z0-9!@#$%^&*]*$

在你的正则表达式中,你有这个,

([a-z0-9]+)[!@#$%^&*]*

这意味着在您的输入字符串中,字母数字字符必须在前面,特殊字符在最后,这就是它失败的原因。

关于javascript - 正则表达式匹配字符串中的字母和数字,可选地具有一组特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52982428/

相关文章:

javascript - 计算略有误差

javascript - Model.find() 不是函数

r - 使用正则表达式和 POSIX 字符类验证 R 中的密码

C++ 正则表达式行为

java - 正则表达式忽略 html 标签,但从具有不同结束 anchor 的单词边界开始

java - 两个字符序列之间的正则表达式与 `String.split` 不匹配

javascript - 确保drawImage在HTML5 Canvas 上绘制图像

javascript - 在 javascript 问题中应用复合 css 规则

正则表达式:尝试匹配两个字符串*之间没有*某个字符

regex - 在 JSTL 中解析请求 URL