我需要從表單中的輸入字段獲取一個值,我只需要文件名。該字符串看起來像這樣:拆分一個文件輸入字段的字符串
var str = 'C:\Users\User\Desktop\file_name.ext';
如果我嘗試運行(是的,反斜槓轉義)
str.split(\\)[str.length-1]
它不工作,因爲字符串中的斜線不會被轉義。簡單給我C:UsersUserDesktopile_name.ext
,你會發現問題在哪裏。我如何解決這個問題?
我需要從表單中的輸入字段獲取一個值,我只需要文件名。該字符串看起來像這樣:拆分一個文件輸入字段的字符串
var str = 'C:\Users\User\Desktop\file_name.ext';
如果我嘗試運行(是的,反斜槓轉義)
str.split(\\)[str.length-1]
它不工作,因爲字符串中的斜線不會被轉義。簡單給我C:UsersUserDesktopile_name.ext
,你會發現問題在哪裏。我如何解決這個問題?
你需要躲避反斜槓在你的字符串:
"C:\\Users\\User\\Desktop\\file_name.ext".split("\\").pop();
var str = 'C:\\Users\\User\\Desktop\\file_name.ext';
var parts = str.split('\\');
var result = parts[parts.length - 1];
'C:\Users\User\Desktop\file_name.ext'.split(/\\|//).pop();
假定反斜線轉義。我通過擺脫反斜槓來混淆人們。上面的字符串是「原樣」。
的解決方案,並鏈接到撥弄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));
});
});
後一些(更多)的代碼,也許? –
在我看來,你拼錯了'split'參數 –
你的意思是你只想在你的輸出中輸入「file_name」 –