2015-07-28 88 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它只能用正则表达式对象。所以我看到,我应该使用两个反斜杠而不是一个反斜杠。要检查它。 –