0

我正在查看此示例,该示例在您在 PC 中选择文件后获取文件名。

我写是因为我不明白,在这种情况下如何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)我们知道文件名?

4

2 回答 2

3

lastIndexOf returns:

the zero-based index position of the last occurrence of a specified Unicode character or string

In your example we are looking for the last \ in the path and then taking the next part in the path which is the file name.

于 2013-09-23T08:28:30.023 回答
1
var lastIndex = filename.lastIndexOf("\\");
if (lastIndex >= 0) {
    filename = filename.substring(lastIndex + 1);
}

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

编辑:我是个白痴,弄乱了substring语法。已更正。

于 2013-09-23T08:29:57.670 回答