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戻り値:

指定された Unicode 文字または文字列が最後に出現した位置の 0 から始まるインデックス位置

あなたの例では、パスの最後の部分を探してから\、パスの次の部分であるファイル名を取得しています。

于 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 に答える