Javascript 如何格式化包含变量的正则表达式?
如果我硬编码一个值,比如“foo”,我有下面的正则表达式可以很好地工作: 但是如果“foo”是一个变量呢?我该如何为此编写正则表达式?例如: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"] 你能准确地展示一下你是如何使用这些吗?什么有效,什么无效?您
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"]