2013-12-23 42 views
0

编辑,让我举个更好的例子。我需要分割一个包含通配符的字符串

说这是我的html

var innerHTML = '<ul><li>I1 some stuff</li> 
<li>I1 more stuff</li> 
<li>I2 even more stuff</li> etc..</ul>'; 

我需要一种方法用数字1-9

var li = '<li>I/[1-9]/ '; // * being anything 1-9 including the space at the end 
var sArr = innerHTML.split(li); 

我以为我可以使用正则表达式,但不知道太多关于它的分裂以及如何实施它。上述不起作用。

+1

我不明白你的问题。如果你的意思是把每个'i'分开,你可以做s = s.split('i');'和's [8]'是第9个元素。 – Cilan

+1

你确切知道这个字符串会在哪些元素中?如果是这样,只需使用'.substr()',并提取第一个和其他字符。 – Trojan

+0

对不起,我完全搞砸了代码。固定在上面。我使用li来分割html,其中一个字符可以是1-9(用*表示) –

回答

0

这工作

var innerHTML = '<ul><li>I1 some stuff</li> 
<li>I1 more stuff</li> 
<li>I2 even more stuff</li> etc..</ul>'; 

var sArr = innerHTML.split(/<li>I[1-9] /); 
+0

为什么你要转义尖括号? – Bergi

+0

解决方法。 –

1

它以一个完整的刺,如果你想通过跟任何数字1-9I打破字符串:

var a = str.split(/I[1-9]/); 

例如:Live Example | Source

var str = "stuffI1more stuffI2even more stuff"; 
var a = str.split(/I[1-9]/); 
display("str: " + str); 
display("a:"); 
a.forEach(display); 

显示:

str: stuffI1more stuffI2even more stuff 
a: 
stuff 
more stuff 
even more stuff
+0

并且根据问题中的示例将方法扩展为更精确,var a = str.split(/> [^ <>] * I [1-9]/$',等等... – abiessu

相关问题