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

Разделить переменную из последней косой черты - jquery

У меня есть переменная var1/var2/var3. Я хочу сохранить var3 часть после последней косой черты в переменной и части до этого (var1/var2/) в другой переменной. Как я могу это сделать?

4b9b3361

Ответ 1

Вы можете использовать lastIndexOf, чтобы получить последнюю переменную, и чтобы все остальное.

var rest = str.substring(0, str.lastIndexOf("/") + 1);
var last = str.substring(str.lastIndexOf("/") + 1, str.length);

Пример jsfiddle.

var str = "var1/var2/var3";

var rest = str.substring(0, str.lastIndexOf("/") + 1);
var last = str.substring(str.lastIndexOf("/") + 1, str.length);
console.log(rest);
console.log(last);

Ответ 2

Попробуйте что-то вроде этого:

var vars = "var1/var2/var3";
var arrVars = vars.split("/");
var lastVar = arrVars.pop();
var restVar = arrVars.join("/");
alert(lastVar);
alert(restVar);

Ответ 3

var txt = "var1/var2/var3";
txt = txt.split('/')

var Var1 = txt.pop();
var Var2 = txt[0]+'/'+txt[1];

alert(Var1);
alert(Var2);

Ответ 4

Вы можете использовать split, а затем вытащить последний индекс, например:

Пример:

var string = 'var1/var2/var3';

var result = string.split('/');         //Splits into an array

//var final = result[result.length -1]; //Grabs last value
//result.pop();                         //Removes last value

var final = result.pop();               //Removes last value and grap the last value
var previous = result.join('/');        //Grabs the previous part

alert("Previous: " + previous + ", Final Part: " + final);  //Alerts results

Демо:

Демо

Ответ 5

Самое простое решение - использовать javascript:

var str = "var1/var2/var3/var4/var5";
var splitted = str.split("/");
var first = "";
for (var i=0; i<splitted.length-1; i++) {
    first += splitted[i] + "/";
}

var second = "";
if (splitted.length > 0) {
    second = splitted[splitted.length-1];
}

alert(first); // var1/var2/var3/var4/
alert(second); // var5

отредактирован: но самым коротким решением будет: substring() использовать

Ответ 6

String.substring(начало, конец)

где

start = обязательно. Позиция, в которой следует начать извлечение. Первый символ имеет индекс 0

end = Необязательный. Позиция (до, но не включая), где заканчивается извлечение. Если этот параметр опущен, он извлекает остальную часть строки

    var string = "var1/var2/var3";

    start   = string.lastIndexOf('/');  //console.log(start); o/p:- 9
    end     = string.length;            //console.log(end);   o/p:- 14

    var string_before_last_slash = string.substring(0, start);
    console.log(string_before_last_slash);//o/p:- var1/var2

    var string_after_last_slash = string.substring(start+1, end);
    console.log(string_after_last_slash);//o/p:- var3

ИЛИ

    var string_after_last_slash = string.substring(start+1);
    console.log(string_after_last_slash);//o/p:- var3

Ответ 7

Решение, использующее регулярное выражение, может быть не самым быстрым, но занимает меньше места и может быть более читабельным.

"var1/var2/var3".split(/\/(?=[^\/]+$)/)
  • \/ - сопоставить косую черту
  • (?= - Если после
    • [^\/]+ - Все, кроме косой черты.
    • $ - и конец строки
  • )

Ответ 8

var last  = url.split("/").pop();
console.log(last);

Вы можете получить последний кусок URL с помощью метода pop массива.