jQuery,获取没有扩展名的文件名,然后替换字符串

问题描述 投票:3回答:2

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

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))));

上面基本上是指用短划线替换所有空格,只允许a-z和A-Z字符和所有数字。在上面的例子中,例如åöä被aoa取代。

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

jquery regex str-replace
2个回答
14
投票

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

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

要替换我用过的字符:

output = output.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');

1
投票

如果你使用jquery,有更好的方法来获取文件名和扩展名

fileName ='upload.png';

如果只需要文件名

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

如果您只需要扩展名

filename.split('.').pop();
© www.soinside.com 2019 - 2024. All rights reserved.