我有一个特别的问题。我搜索了圣谷歌,但没有找到可行的答案,可能我想做的是不可能的。
就是这个
我想知道是否可以将代码嵌入正则表达式中。
为什么?
目前,我拥有此功能来声明某些特定的字符串(解释为什么我需要这种方式进行声明会很复杂,让我们稍后再做):
let functionName = ()=> {
let regex = /\w[The String]*/g;
return stringify(regex);
};
因此,由于我有很多要声明和验证的“字符串”,因此我的梦想函数将如下所示:
let functionName= (theParam)=> {
let regex = /\w[theParam]*/g;
return stringify(regex);
};
我将写“为什么在测试时必须在代码中使用正则表达式进行断言!?”的文章。在我的personal blog上。
好吧...如果这只是一个梦想,而且不可能实现,请告诉我。
最佳答案
您可以将RegExp constructor用作@MoisesGonsales,并与escapeRegExp或lodash包中的lodash.escapeRegExp函数一起使用:
const escapeRegExp = require('lodash.escapeRegExp');
function buildFunctionNameRegExp (param) {
let escapedParam = escapeRegExp(param);
return new RegExp(`\\w${escapedParam}*`, 'g');
};