我有一个特别的问题。我搜索了圣谷歌,但没有找到可行的答案,可能我想做的是不可能的。
就是这个

我想知道是否可以将代码嵌入正则表达式中。

为什么?
目前,我拥有此功能来声明某些特定的字符串(解释为什么我需要这种方式进行声明会很复杂,让我们稍后再做):



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,并与escapeRegExplodash包中的lodash.escapeRegExp函数一起使用:

const escapeRegExp = require('lodash.escapeRegExp');


function buildFunctionNameRegExp (param) {
    let escapedParam = escapeRegExp(param);

    return new RegExp(`\\w${escapedParam}*`, 'g');
};

09-25 18:33
查看更多