从最后一个斜杠拆分变量

lndjwyie  于 2021-09-13  发布在  Java
关注(0)|答案(9)|浏览(287)

我有一个变量 var1/var2/var3 . 我想去商店 var3 变量中最后一个斜杠后的部分和该斜杠前的部分( var1/var2/ )在另一个变量中。我该怎么做?

xdyibdwo

xdyibdwo1#

你可以用 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);
h43kikqp

h43kikqp2#

试着这样做:

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

wb1gzix03#

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

您可以使用数组pop方法获取最后一段url。

jm81lzqq

jm81lzqq4#

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

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

alert(Var1);
alert(Var2);
pexxcrt2

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

演示:
演示

k4ymrczo

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_after_last_slash = string.substring(start+1);
    console.log(string_after_last_slash);//o/p:- var3
7cwmlq89

7cwmlq897#

使用正则表达式的解决方案可能不是最快的,但占用的空间更少,可读性可能更高。

"var1/var2/var3".split(/\/(?=[^\/]+$)/)
``` `\/` –匹配斜杠 `(?=` –如果后面是 `[^\/]+` –除了斜杠什么都可以。 `$` –还有绳子的末端 `)` 
5jdjgkvh

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

编辑:但最短的解决方案是: substring() 使用

von4xj4u

von4xj4u9#

你也可以反复做 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);

说明:

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'] */

相关问题