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

jQuery,获取不带扩展名的文件名,然后替换字符串,jquery,regex,str-replace,Jquery,Regex,Str Replace,我有以下代码来获取文件扩展名: filename1 = "a.crudely_formed.document_name.jpg" var fileExtension = filename1.substring(filename1.lastIndexOf('.')); 现在我只需要获取文件名,不需要扩展名。正如您在示例中看到的,用户可以广泛地命名文件名,这就是为什么我必须使用lastIndexOf()方法。 我一直在寻找这样做的方法,但什么也没找到 另外,当我有文件名(没有扩

我有以下代码来获取文件扩展名:

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中执行此操作,有什么建议吗?

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

var output = filename1.substr(0, filename1.lastIndexOf('.')) || filename1;
output = output.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');
要替换字符,我使用以下方法:

var output = filename1.substr(0, filename1.lastIndexOf('.')) || filename1;
output = output.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');

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

文件名='upload.png'

如果只需要文件名

filename.split('.').shift();
如果您只需要扩展

filename.split('.').pop();

filename=filename1.substring(0,filename1.lastIndexOf('.')?谢谢!把我推向正确的方向。对第二个问题有什么想法吗?当文件名本身包含点(.)时,代码将失败。如果是这种情况,您可以删除扩展名并向左移动