2011-05-11 55 views
0

我必须从这个代码创建HTML列表JavaScript正则表达式生成HTML列表

- ali 
- hammad 
- shah 
-- haripur hazara 
-- gaga goo 
- naqvi 

的“ - ”表示开始列表和嵌套列表元素有额外的“ - ”符号,你可以请看'haripur hazara'和'gaga gogo'。对可以插入多少个嵌套列表没有限制。任何帮助将不胜感激。

谢谢。

回答

1
var h = []; 
var d = 0, dl = 0; 
var s = "- ali\n" + 
     "- hammad\n" + 
     "- shah\n" + 
     "-- haripur hazara\n" + 
     "--- gaga goo\n" + 
     "- naqvi "; 

var a = s.split('\n'); 

for(var x=0,l=a.length;x<l;x++) 
{ 
    d=a[x].indexOf(' '); 
    if(d>dl){h.push('<ul>');} 
    if(d<dl){h.push('</ul>');} 
    h.push('<li>'+a[x].substring(d+1) + '</li>'); 
    dl=d; 
} 
while(d-- > 0){h.push('</ul>');} 
document.getElementById('test').innerHTML = h.join(''); 
+0

哪里是正则表达式? :) – gaRex 2011-05-12 07:29:55

+0

@Alexander - 因为在实际问题中没有提到正则表达式,所以我认为OP只是想解决他们的问题。如果他们*需要*使用正则表达式来做到这一点,那么也许他们有2个问题... :) – 2011-05-12 15:07:28

+0

我只是甚至不能想象,这些正则表达式应该是多久和eveil ... – gaRex 2011-05-12 15:16:07