删除最后一个反斜杠之后的所有内容

var t = "\some\route\here"

我需要“一些路线”从它。

谢谢你。

82943 次浏览

你需要 lastIndexOfsubstr..。

var t = "\\some\\route\\here";
t = t.substr(0, t.lastIndexOf("\\"));
alert(t);

此外,还需要将字符串中的 \字符加倍,因为它们用于转义特殊字符。

更新 由于这种方法经常被证明对其他人有用,这里有一个片段示例..。

// the original string
var t = "\\some\\route\\here";


// remove everything after the last backslash
var afterWith = t.substr(0, t.lastIndexOf("\\") + 1);


// remove everything after & including the last backslash
var afterWithout = t.substr(0, t.lastIndexOf("\\"));


// show the results
console.log("before            : " + t);
console.log("after (with \\)    : " + afterWith);
console.log("after (without \\) : " + afterWithout);

正如@Archer 的回答中所说,你需要加倍使用反斜杠。我建议使用正则表达式替换获取所需的字符串:

var t = "\\some\\route\\here";
t = t.replace(/\\[^\\]+$/,"");
alert(t);

使用 JavaScript 可以简单地实现这一点。删除上次“ _”事件后的所有内容。

var newResult = t.substring(0, t.lastIndexOf("_") );