首页 > 解决方案 > 正则表达式匹配字符串中的字母和数字,可选地具有一组特殊字符

问题描述

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

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

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

但它无法匹配以下模式

标签: javascriptregexregex-lookarounds

解决方案


你需要在你的正则表达式中做一点修正,并像这样定义所有允许的字符,

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

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

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

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


推荐阅读