我有一个变量 var1/var2/var3 . 我想去商店 var3 变量中最后一个斜杠后的部分和该斜杠前的部分( var1/var2/ )在另一个变量中。我该怎么做?
var1/var2/var3
var3
var1/var2/
xdyibdwo1#
你可以用 lastIndexOf 获取最后一个变量,然后获取其余变量。
lastIndexOf
var rest = str.substring(0, str.lastIndexOf("/") + 1);var last = str.substring(str.lastIndexOf("/") + 1, str.length);
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);
var str = "var1/var2/var3";
console.log(rest);
console.log(last);
h43kikqp2#
试着这样做:
var vars = "var1/var2/var3";var arrVars = vars.split("/");var lastVar = arrVars.pop();var restVar = arrVars.join("/");alert(lastVar);alert(restVar);
var vars = "var1/var2/var3";
var arrVars = vars.split("/");
var lastVar = arrVars.pop();
var restVar = arrVars.join("/");
alert(lastVar);
alert(restVar);
wb1gzix03#
var last = url.split("/").pop();console.log(last);
var last = url.split("/").pop();
您可以使用数组pop方法获取最后一段url。
jm81lzqq4#
var txt = "var1/var2/var3";txt = txt.split('/')var Var1 = txt.pop();var Var2 = txt[0]+'/'+txt[1];alert(Var1);alert(Var2);
var txt = "var1/var2/var3";
txt = txt.split('/')
var Var1 = txt.pop();
var Var2 = txt[0]+'/'+txt[1];
alert(Var1);
alert(Var2);
pexxcrt25#
您可以使用拆分,然后提取其最后一个索引,如下所示:例子:
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 valuevar final = result.pop(); //Removes last value and grap the last valuevar previous = result.join('/'); //Grabs the previous partalert("Previous: " + previous + ", Final Part: " + final); //Alerts results
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
演示:演示
k4ymrczo6#
string.substring(开始、结束)哪里开始=必需。开始提取的位置。第一个字符位于索引0处结束=可选。结束提取的位置(直至但不包括)。如果省略,它将提取字符串的其余部分
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 = "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
var string_after_last_slash = string.substring(start+1);
7cwmlq897#
使用正则表达式的解决方案可能不是最快的,但占用的空间更少,可读性可能更高。
"var1/var2/var3".split(/\/(?=[^\/]+$)/)``` `\/` –匹配斜杠 `(?=` –如果后面是 `[^\/]+` –除了斜杠什么都可以。 `$` –还有绳子的末端 `)`
"var1/var2/var3".split(/\/(?=[^\/]+$)/)
``` `\/` –匹配斜杠 `(?=` –如果后面是 `[^\/]+` –除了斜杠什么都可以。 `$` –还有绳子的末端 `)`
5jdjgkvh8#
最简单的解决方案是使用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
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() 使用
substring()
von4xj4u9#
你也可以反复做 replace() , split() ,及 join() 在字符串上单击以获得所需的结果
replace()
split()
join()
let str = 'var1/var2/var3';str = str.split('').reverse().join('').split(/\/(.+)/).map(x => x.split('').reverse().join('')).reverse().filter(x => x);console.log(str);
let str = 'var1/var2/var3';
str = str.split('').reverse().join('').split(/\/(.+)/).map(x => x.split('').reverse().join('')).reverse().filter(x => x);
console.log(str);
说明:
str .split('') /* ['v', 'a', 'r', '/', 'v', 'a', ...] */ .reverse() /* ['3', 'r', 'a', 'v', '/', 'r', ...] */ .join('') /* '3rav/2rav/1rav' */ .split(/\/(.+)/) /* ['3rav', '2rav/1rav', ''] */ .map(x => x.split('').reverse().join('')) /* ['var3', 'var1/var2', ''] */ .reverse() /* ['', 'var1/var2', 'var3'] */ .filter(x => x) /* ['var/var2', 'var3'] */
str
.split('') /* ['v', 'a', 'r', '/', 'v', 'a', ...] */
.reverse() /* ['3', 'r', 'a', 'v', '/', 'r', ...] */
.join('') /* '3rav/2rav/1rav' */
.split(/\/(.+)/) /* ['3rav', '2rav/1rav', ''] */
.map(x => x.split('').reverse().join('')) /* ['var3', 'var1/var2', ''] */
.reverse() /* ['', 'var1/var2', 'var3'] */
.filter(x => x) /* ['var/var2', 'var3'] */
9条答案
按热度按时间xdyibdwo1#
你可以用
lastIndexOf
获取最后一个变量,然后获取其余变量。jsfiddle上的示例。
h43kikqp2#
试着这样做:
wb1gzix03#
您可以使用数组pop方法获取最后一段url。
jm81lzqq4#
pexxcrt25#
您可以使用拆分,然后提取其最后一个索引,如下所示:
例子:
演示:
演示
k4ymrczo6#
string.substring(开始、结束)
哪里
开始=必需。开始提取的位置。第一个字符位于索引0处
结束=可选。结束提取的位置(直至但不包括)。如果省略,它将提取字符串的其余部分
或
7cwmlq897#
使用正则表达式的解决方案可能不是最快的,但占用的空间更少,可读性可能更高。
5jdjgkvh8#
最简单的解决方案是使用javascript:
编辑:但最短的解决方案是:
substring()
使用von4xj4u9#
你也可以反复做
replace()
,split()
,及join()
在字符串上单击以获得所需的结果说明: