Javascript 如何格式化包含变量的正则表达式?

Javascript 如何格式化包含变量的正则表达式?,javascript,regex,Javascript,Regex,如果我硬编码一个值,比如“foo”,我有下面的正则表达式可以很好地工作: 但是如果“foo”是一个变量呢?我该如何为此编写正则表达式?例如: var bar = "foo"; 我无法让/bar/工作。当“bar”是一个变量时,如何将其格式化才能工作?您需要像这样使用新的RegExp: var bar = "foo", re = new RegExp(bar) bar.match(re) //returns ["foo"] 你能准确地展示一下你是如何使用这些吗?什么有效,什么无效?您

如果我硬编码一个值,比如“foo”,我有下面的正则表达式可以很好地工作:

但是如果“foo”是一个变量呢?我该如何为此编写正则表达式?例如:

var bar = "foo";

我无法让
/bar/
工作。当“bar”是一个变量时,如何将其格式化才能工作?

您需要像这样使用新的RegExp:

var bar = "foo",
    re = new RegExp(bar)

bar.match(re) //returns ["foo"]

你能准确地展示一下你是如何使用这些吗?什么有效,什么无效?您的变量能否包含特殊的正则表达式变量,如
?或*或+或{或}或(或)或[或]
等?谢谢@casimirethippolyte如果您有regex保留的硬编码字符,您可能需要使用类似的内容(例如,
[
]
*
+
)因为这些将作为它们的regex等价物工作
got milk?
例如将允许
got milz
(因为最后一个
k
是可选的),并且
r+a
将允许
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr a
var bar = "foo",
    re = new RegExp(bar)

bar.match(re) //returns ["foo"]