2015-07-28 64 views
1

我在我的js代碼中有一個字符串,實際上是一個html代碼。 它開始與<li class='list__item item item_archive'> 這工作得很好:Javascript。使正則表達式對象工作正則表達式的問題

liMatches=s.match(/(<li[A-Za-z\s_=\']+>...$/); 

其中s是HTML字符串。現在我需要使用RegExp對象。

liMatchesRegex=new RegExp("<li[\s]+"); 

我創建了這個對象(我也試過<li[A-Za-z\s_=\']+>)。

liMatchesConcat=s.match(liMatchesRegex); 

顯示我空 它只能與liMatchesRegex=new RegExp("<li"); 有什麼不對?

回答

1

您可以用文字符號只是創建RegExp對象:

var re = /<li[\s]+/; 

另外,如果你想使用構造函數和傳遞一個字符串,你需要在你的表達逃避反斜槓(\\) :

var re = new RegExp('<li[\\s]+'); 
+2

我不能使用文字符號,因爲我需要一個正則表達式的連接。正如我在這裏找到的:http://stackoverflow.com/questions/185510/how-can-i-concatenate-regex-literals-in-javascript它只能用正則表達式對象。所以我看到,我應該使用兩個反斜槓而不是一個反斜槓。要檢查它。 –