7

我有这个代码来获取文件扩展名:

filename1 = "a.crudely_formed.document_name.jpg"         
var fileExtension = filename1.substring(filename1.lastIndexOf('.')); 

现在我只需要获取文件名,而不需要扩展名。正如您在示例文件名中所看到的,用户可以随意命名文件名,这就是我必须使用 lastIndexOf() 方法的原因。我已经搜索了这样做的方法,但我一无所获。

此外,当我有文件名(不带扩展名)时,我需要与此类似的东西

$filename = strtolower(str_replace(array('  ', ' '), '-', preg_replace('/[^a-zA-Z0-9 s]/', '', trim($filename))));

以上基本上意味着,用破折号替换所有空格,并且只允许 az 和 AZ 字符以及所有数字。在上面的示例中,例如 åöä 被 aoa 替换。

关于如何在 jQuery 中执行此操作的任何建议?

4

2 回答 2

18

好的,只获取我使用的文件名:

var output = filename1.substr(0, filename1.lastIndexOf('.')) || filename1;

要替换我使用的字符:

output = output.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');
于 2012-10-23T12:45:49.877 回答
4

有更好的方法来获取文件名和扩展名

文件名 = '上传.png';

如果您只需要文件名

filename.split('.').shift();

如果您只需要扩展

filename.split('.').pop();
于 2019-03-12T18:54:03.680 回答