2010-10-12 65 views
11

可能重複:
passing variable to a regexp in javascript在Javascript中的現有RegExp中插入一個字符串?

我有一個變量:

resource = "user"; 

欲該變量插入到預定義的正則表達式(替換下方變量):

/^\/variable\/\d+$/ 

我該怎麼做?

+2

很多重複的,其中包括:將變量傳遞給JavaScript中的正則表達式](http://stackoverflow.com/questions/487509/passing-variable-to-a-regexp-in-javascript) – 2010-10-12 15:31:24

回答

24

使用的RegExp構造:

var re = new RegExp("^\\/" + resource + "\\/\\d+$"); 

請注意,你需要躲避分隔符/兩次,一次是爲正則表達式一次字符串聲明。

您可能還需要使用一些逃生功能引用字符串在正則表達式中使用:

function quote(str) { 
    return str.replace(/(?=[\/\\^$*+?.()|{}[\]])/g, "\\"); 
} 

這使我們這樣的:

var re = new RegExp("^\\/" + quote(resource) + "\\/\\d+$"); 
6

你應該可以做到這一點。

var resource = "user"; 
var regex = new RegExp("^\/"+resource+"\/\d+$", "g"); 

然後,可以通過RegExp對象的功能,如myString.replace()或調用RegExp對象本身的exec()方法。

+0

刪除分隔符,它很好。 – Gumbo 2010-10-12 15:32:06

+0

哎呀,謝謝! – 2010-10-12 15:32:31

+0

+1表示如何處理RegExp對象:) – 2012-12-13 17:08:59

3

可以使用new RegExp方法:

var resource = "user"; 
new RegExp("^\/"+resource+"\/\d+$"); 
相關問題