在js中从末尾起第三次出现时拆分字符串

Split a string at the thrid occurance from end in js

本文关键字:拆分 字符串 第三次 js      更新时间:2023-09-26

我有这个字符串:

01-08-2011_11-08-20113-我的Id我的名字-1.tif

我想在第三次出现("-")时从字符串的末尾拆分,因为在字符串的开头,长度可能会改变。这就是我想要的:

我的Id我的名字-1.tif

我不想使用slicepop。我只想使用splitlastindexofsubstringindexof

有什么建议吗?

myStr.replace(/^.*-([^-]+-[^-]+-[^-]+)$/, '$1')

这将捕获最后三个破折号之间的所有内容,并仅用该部分替换整个字符串。

我相信有更好的方法可以做到这一点,因为我对js还很陌生,但下面的方法确实有效。这是基于您不使用拼接和弹出的请求。

var input = "01-08-2011_11-08-20113-My Id-MY Name-1.tif";
var sc = input.split("-");
var r1 = sc[sc.length-1]
var r2 = sc[sc.length-2]
var r3 = sc[sc.length-3]
var rtn = [r3,r2,r1].join("-")
alert (rtn) //returns: My Id-MY Name-1.tif