无法理解这个例子是如何工作的。 lastIndexOf()方法

时间:2013-09-23 08:22:07

标签: javascript substring 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)然后我们知道文件的名称?

2 个答案:

答案 0 :(得分:3)

lastIndexOf返回:

  

最后一次出现的指定Unicode字符或字符串的从零开始的索引位置

在您的示例中,我们正在寻找路径中的最后一个\,然后将路径中的下一部分作为文件名。

答案 1 :(得分:1)

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

这样做是为了找到最后一个反斜杠。如果存在(if (lastIndex >= 0)),那么我们会使用substring删除导致它的所有内容。换句话说,代码会删除文件名之前的路径。

编辑:我是个白痴,搞砸了substring语法。校正。