我需要从表单中的输入字段中获取值,我只需要文件名。字符串看起来像这样:
var str = 'C:\Users\User\Desktop\file_name.ext';
如果我尝试运行(是的,反斜杠被转义)
str.split(\\)[str.length-1]
它不起作用,因为字符串中的斜杠不会被转义。简单的console.log(str)
会给我C:UsersUserDesktopile_name.ext
,您会看到问题所在。我如何解决这个问题?
答案 0 :(得分:2)
'C:\Users\User\Desktop\file_name.ext'.split(/\\|//).pop();
假设反斜杠被转义。通过逃避我的反斜杠让我很困惑。上面的字符串是“按原样”。
答案 1 :(得分:0)
你需要转义字符串中的反斜杠:
"C:\\Users\\User\\Desktop\\file_name.ext".split("\\").pop();
答案 2 :(得分:0)
var str = 'C:\\Users\\User\\Desktop\\file_name.ext';
var parts = str.split('\\');
var result = parts[parts.length - 1];
答案 3 :(得分:0)
解决方案,并链接到小提琴fiddle
$(function () {
function getFileName(path) {
return path.match(/[-_\w]+[.][\w]+$/i)[0];
}
$('#data_up').change(function () {
var fileName = $(this).val();
$('#data').val('somepath/' + getFileName(fileName));
});
});