2017-10-19 32 views
0

如何動態地創建一個正則表達式:如何創建一個正則表達式動態

我有以下的正則表達式,它有一個硬編碼值core.UI,我想用一個變量來代替。

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

我現在想這一點,但它不工作

var value = 'core.UI' 


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

使用'RegExp'從字符串中創建它。查看第二個示例:https://developer.mozilla.org/docs/Web/JavaScript/Guide/Regular_Expressions – Yoshi

回答

0

//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}

順便說一句,你忘了逃跑的點。