从字符串中删除部分

时间:2013-09-10 11:17:17

标签: javascript string

我有一个这样的字符串:

dir/subdir/file-hash.ext

知道上面文本中的“哈希”部分总是8个数字/字母长,我该怎么做这个字符串如下所示:

dir/subdir/file.ext

唯一可能改变的是字符串在开头是否有/

我不知道如何实现这个

2 个答案:

答案 0 :(得分:4)

使用正则表达式:

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

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

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

答案 1 :(得分: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