Javascript Regex:如何将变量放在正则表达式中?
2022-08-30 00:24:23
例如:
function(input){
var testVar = input;
string = ...
string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}
但这当然不是有效的:)有什么办法可以做到这一点吗?
例如:
function(input){
var testVar = input;
string = ...
string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}
但这当然不是有效的:)有什么办法可以做到这一点吗?
const regex = new RegExp(`ReGeX${testVar}ReGeX`);
...
string.replace(regex, "replacement");
根据一些注释,重要的是要注意,如果存在潜在的恶意内容,您可能希望转义该变量(例如,变量来自用户输入)
在2019年,这通常使用模板字符串编写,并且上面的代码已经更新。最初的答案是:
var regex = new RegExp("ReGeX" + testVar + "ReGeX");
...
string.replace(regex, "replacement");
您可以使用正则表达式对象:
var regexstring = "whatever";
var regexp = new RegExp(regexstring, "gi");
var str = "whateverTest";
var str2 = str.replace(regexp, "other");
document.write(str2);
然后,您可以按照自己想要的任何方式进行构造。regexstring
您可以在此处阅读更多相关信息。