2013-09-23 24 views
0

我一直在尋找這個例子,在你的電腦中選擇它之後得到一個文件的名字。不能忽略這個例子的工作方式。 lastIndexOf()方法

我寫作因爲我不明白,在這種情況下如何lastIndexOf()工作!

<script> 
     $('#browseFile').change(function() { 
      var filename = $(this).val(); 
      var lastIndex = filename.lastIndexOf("\\"); 
      if (lastIndex >= 0) { 
       filename = filename.substring(lastIndex + 1); 
      } 
      $('#filename').val(filename); 
     }); 
</script> 

我知道lastIndexOf算你有多少個字符具有指定的字符串之前,因此,例如:

var phrase = "look at the sea"; 
var result phrase.lastIndexOf("sea"); 

將返回13,但爲什麼在第一個例子我張貼if (lastIndex >= 0)那麼我們知道這個名字的文件?

回答

1
var lastIndex = filename.lastIndexOf("\\"); 
if (lastIndex >= 0) { 
    filename = filename.substring(lastIndex + 1); 
} 

這樣做是找到最後一個反斜槓。如果存在(if (lastIndex >= 0)),則我們使用substring刪除導致它的所有內容。換句話說,代碼刪除文件名之前的路徑。

編輯:我是一個白癡,搞砸了substring語法。糾正。

+0

非常感謝這麼substring得到整個路徑,並從stering中刪除它?非常感謝btw。 substring(index); –

+0

substring(index);子字符串函數從您作爲參數插入的索引創建新字符串。例如,我有** var myname =「mysteryboy」; **所以當我運行/調用方法** myname.substring(2)**然後子字符串方法從索引2創建新字符串並在2之前留下所有字符指數。 – mystertyboy

3

lastIndexOf回報:

一個指定的Unicode字符或字符串

在您的例子中最後一次出現,我們在路徑尋找最後\的從零開始的索引位置,然後在文件名稱的路徑中進行下一部分。