如何动态创建正则表达式:
我有以下正则表达式,它有一个硬编码值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/