У меня есть переменная var1/var2/var3
. Я хочу сохранить var3
часть после последней косой черты в переменной и части до этого (var1/var2/
) в другой переменной. Как я могу это сделать?
Разделить переменную из последней косой черты - jquery
Ответ 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 массива.