首页 > 解决方案 > 如何将正则表达式转换为动态?

问题描述

我有一个正则表达式,可以让我在没有空格的长文本中找到特定的文本,现在我想动态地使用它来查找不同的单词,尝试将它传递给 dynamic 但我无法让它工作。

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

const rt = "8.469.505-k"
const ex = '/\b(\w*'+ rt +'\w*)\b/g'

const cleanT = text.replace(/ /g, "")
if( cleanT.match(new RegExp(ex, 'g')) ){
  console.log("si encontro")
}

标签: javascriptregex

解决方案


该字符串不应包含全局标志。它不应该有正则表达式的开始和结束。它也应该有 \ 转义

const ex = '\\b(\\w*'+ rt +'\\w*)\\b'

此外,您需要确保 rt 没有任何会使 reg exp 无效的东西。就像.将匹配任何字符一样。


推荐阅读