2012-08-24 60 views
2

问题:如何确定两个相似字符之间的可变长度字符串?如何确定路径字符串中的当前目录?

让我澄清:

采取的这两个网址:

/设计/ 2012 /移动/ V4 /〜HTML/ECOM/

/设计/ 2012 /移动/ v4 /〜html/legal/

我试图建立一个ID等于每行的当前目录名称的锚点:ecom,legal,local等。

所以上面的目录会导致与以下页面:

<a href="/designs/2012/mobile/v4/~html/ecom/" id="ecom">/designs/2012/mobile/v4/~html/ecom/</a> 
<a href="/designs/2012/mobile/v4/~html/legal/" id="legal">/designs/2012/mobile/v4/~html/legal/</a> 

我一直在.lastIndexOf玩弄但我有一点运气。我想如果我能说(警告前面的代码)!“得到第二个持续时间/并将字符串拉到最后/”但我不确定该怎么做。

任何提示或指针?

这里是我的代码迄今:

$(document).ready(function() { 
$.ajax({ 
    url: "./~html", 
    success: function(data){ 
     $(data).find("a").each(function(){ 
      var path = $(this).attr("href"); 
      var fileNameIndex = path.lastIndexOf("/") + 1; 
      var dirNameIndex = path.lastIndexOf("/"); 
      var dirNameLength = path.length -1; 
      var file = path.substr(fileNameIndex); 
      var directory = path.substr(dirNameIndex); 
      console.log("length of string: " + dirNameLength); 
      console.log("Directory Index: " + dirNameIndex); 
      console.log(directory); 
      var idIndex = 1; 

      if (file != "") { 
       $('<li></li>').html('<a href=\"' + path + '\">' + file + '</a>').appendTo('#files'); 
      } else { 
       $('<li></li>').html('<a href=\"' + path + '\"' + 'id=\"' + directory + '\">' + path + '</a>').appendTo('#directories'); 
      } 

     }); 
    } 
}); 

});

回答

3

一种可能的方式是由斜线分割字符串为数组:

var path = '/designs/2012/mobile/v4/~html/ecom/'; 
var components = path.split('/'); 
var last_part = components[components.length-2]; 
alert(last_part); // alerts 'ecom' 

path.split('/')会给你的8项的数组(components.length8):

components[0] = ''; 
components[1] = 'designs'; 
components[2] = '2012'; 
components[3] = 'mobile'; 
components[4] = 'v4';  
components[5] = '~html'; 
components[6] = 'ecom'; 
components[7] = ''; 
+0

真的欣赏@bfavaretto的帮助!像魅力一样工作! –

3
var path = '/designs/2012/mobile/v4/~html/ecom/', 
    dir = /.*\/(.*)\//.exec(path)[1]; 
相关问题