动态正则中的动态范围

发布于 2022-09-12 12:59:28 字数 761 浏览 18 评论 0

let array = [
  "`","~","!","@","#","$","%","^","&","*","(",")","_","=","+",
  "[","{","\]","}","\\","|",";",":","'","\"",",","<",".",">","\/","?"
]
console.log(new RegExp(`[${array.join("")}]`, "i").test("~123")) // false

我想通过筛选数组生成动态的非法字符正则检测,但是动态正则并没有生效,请问如何才能生效?

生效代码

let array = [
  // 英文
  "`","~","!","@","#","$","%","^","&","*","(",")","-","_","=","+",
  "[","{","]","}","\\","|",";",":","'","\"",",","<",".",">","/","?",
  // 中文
  "·","!","¥","…","(",")","—","【","】","、",";",":","‘","’","“","”",",","《","。","》","?"
]
for (let index = 0; index < array.length; index++) {
  // 测试
  console.log(new RegExp(`[${array.join("\\")}]`, "im").test(` 123 ${array[index]} 456 `))
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我很坚强 2022-09-19 12:59:28

看图
image.png
所以
是你的配置写错了

所有需要转义的里面的\都要转义
例如
'\[' -> '\\['
'\\' -> '\\\\'
'\/' -> '\\/'
等等

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文