javascript - 如何动态创建正则表达式

标签 javascript

如何动态创建正则表达式:

我有以下正则表达式,它有一个硬编码值core.UI,我想改用一个变量。

test({
  storyKindRegex: /^core.UI$/,
})

我现在正在尝试这个,但它不起作用

var value = 'core.UI'


    test({
          storyKindRegex: /${value }/,
        })

最佳答案

//two utilities
const replace = (search, replacement) => haystack => String(haystack).replace(search, replacement);
const escapeRegex = replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');

//example
let str = "core.UI";
let regex = new RegExp("^" + escapeRegex(str) + "$");

console.log("string:", str);
console.log("Regex:", regex);
.as-console-wrapper{top:0;max-height:100%!important}

顺便说一句,你忘了转义点。

关于javascript - 如何动态创建正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46826316/

相关文章:

javascript - 如果月份不是当前月份

javascript - Nuxt页面HTML在数据之前加载

php,使用mysql_connect()连接数据库问题,如何解决?

JavaScript 正则表达式匹配大写链接

javascript - jquery 相当于 getcompulatedstyle()

javascript - useRef 中传入 null 和 undefined 的区别

javascript - TypeError C 是未定义的数据表

javascript - jquery 数据不匹配 dom 属性

javascript - Protractor 如何得到可靠的结果?

javascript - 为什么#each 标签不接受数组?