2009-08-23 41 views
2

這是就是我要問了:如何連接javascript中的正則表達式?

concatenate multiple regexes into one regex

是有辦法附加一個正則表達式到另一個(在JavaScript語言)

這樣做的理由是爲了簡化代碼維護(例如,如果包含的字符串很長或更容易由非程序員維護)。

在python,例如,我會寫這樣的:

regstr1 = 'dogs|cats|mice' 
regstr_container = '^animal: (cows|sheep|%s|zebra)$' % regstr1 
re.compile(regstr_container) 
然而

JavaScript中的正則表達式不是字符串。

re = /^animal: (rami|shmulik|dudu)$/; 

或者我錯過了什麼?

+0

我已經關閉了這個問題;但沒有刪除它,所以使用我使用過的關鍵字的其他人將達到此鏈接:http://stackoverflow.com/questions/185510/how-can-i-concatenate-regex-literals-in-javascript – 2009-08-23 15:54:09

回答

5

您不必使用文字符號。您可以改爲創建一個新的RegExp對象。

var myRegex = new RegExp("^animal: (rami|shmulik|dudu)$"); 
+0

+ 1,你可以做一個佔位符:container =「...(牛|綿羊| {BLAH} |斑馬)..」; var re = new Regexp(container.replace(「{BLAH}」,regstr1); – orip 2009-08-23 17:06:12

2
var regstr1 = 'dogs|cats|mice', 
regstr_container = '^animal: (cows|sheep|'+ regstr1 +'|zebra)$', 
regex = RegExp(regstr_container);