Подтвердить что ты не робот

Удалить все после последней обратной косой черты

var t = "\some\route\here"

Мне нужно "\ some\route".

Спасибо.

4b9b3361

Ответ 1

Вам нужны lastIndexOf и substr...

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);

Ответ 2

Как указано в ответе @Archer, вам нужно удвоить обратную косую черту. Я предлагаю использовать замену регулярных выражений, чтобы получить нужную строку:

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

Ответ 3

Используя JavaScript, вы можете просто добиться этого. Удалите все после последнего "_" события.

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