从字符串中删除部分

Remove part from string

本文关键字:删除部 字符串      更新时间:2023-09-26

我有一个这样的字符串:

dir/subdir/file-hash.ext

知道上面文本中的"哈希"部分总是 8 个数字/字母长,我怎样才能使这个字符串如下所示:

dir/subdir/file.ext

唯一可能更改的是字符串在开头有或没有/

我不知道我该如何实现这一目标

使用正则表达式:

var str2 = str1.replace(/-.{8}'.ext$/, '.ext');

如果扩展名可能会更改(例如.odt而不是.txt,请使用

var str2 = str1.replace(/-.{8}('.['d'w]+)$/, '$1');

由于您具有固定长度,因此不需要使用正则表达式。使用(last)indexOfsubstr

var path = "dir/subdir/file-01234567.ext"; // or "/dir/subdir/file-01234567.ext"
var pos = path.lastIndexOf("."); // find the last `.`
path = path.substr(0, pos - 8) + path.substr(pos); // dir/subdir/file-.ext

如果您希望它没有尾随-请使用:

path = path.substr(0, pos - 9) + path.substr(pos); // dir/subdir/file.ext