【问题标题】:JS RegExp with StringLiteral in match() issue [duplicate]JS RegExp with StringLiteral in match() 问题 [重复] 【发布时间】:2021-05-21 17:45:16 【问题描述】: Why do regex constructors need to be double escaped? 【问题讨论】: 标签: javascript regex match 【解决方案1】: 由于字符串插值,这两个正则表达式不同。从我的 Notepad++ 中查看这个比较: 你需要: const regex = new RegExp(`^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[!,%,&,@,#,$,^,*,?,_,~,+,\\-,",',.,:,=,{,},\\[,\\],(,)]).{${passwordMinLength},}`); 【讨论】: 是的,根据引用的文章,我也得出了这个结论。但是谢谢你的文本输出,我以为它们看起来一样,但我错了。 @JohnPete22 等宽文本编辑器只会在 2 种情况下产生误导:不正确的输出粘贴和隐藏字符,如零宽度空格字符和控制字符。