我有一个非常具体的问题。我已经通过圣谷歌进行了搜索,但没有看到可行的答案,可能我想要做的事情是不可能的。 事情是这样的。
我想知道是否可以在正则表达式中嵌入代码。
为什么? 目前我有这个函数来断言一些特定的字符串(解释为什么我需要断言这种方式会很复杂,让我们稍后再做):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');
};
关于javascript - 是否可以在正则表达式中嵌入代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52842113/