1

我需要从表单的输入字段中获取一个值,我只需要文件名。字符串如下所示:

var str = 'C:\Users\User\Desktop\file_name.ext';

如果我尝试运行(是的,反斜杠被转义)

str.split(\\)[str.length-1]

它不起作用,因为字符串中的斜杠没有被转义。简单console.log(str)给了我C:UsersUserDesktopile_name.ext,您会看到问题出在哪里。我该如何解决?

4

4 回答 4

2
'C:\Users\User\Desktop\file_name.ext'.split(/\\|//).pop();

假设反斜杠被转义。我通过逃避我的反斜杠来混淆人们。上面的字符串是“原样”。

于 2013-06-21T12:46:01.790 回答
0
var str = 'C:\\Users\\User\\Desktop\\file_name.ext';

var parts = str.split('\\');
var result = parts[parts.length - 1];
于 2013-06-21T12:45:59.687 回答
0

解决方案,并链接到小提琴小提琴

$(function () {
function getFileName(path) {
    return path.match(/[-_\w]+[.][\w]+$/i)[0];
}

$('#data_up').change(function () {
    var fileName = $(this).val();
    $('#data').val('somepath/' + getFileName(fileName));
});
});
于 2013-06-21T13:51:54.760 回答
0

您需要转义字符串中的反斜杠:

"C:\\Users\\User\\Desktop\\file_name.ext".split("\\").pop();
于 2013-06-21T12:42:20.770 回答