从最后一个斜杠拆分变量

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

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

xdyibdwo

xdyibdwo1#

你可以用 lastIndexOf 获取最后一个变量,然后获取其余变量。

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

jsfiddle上的示例。

  1. var str = "var1/var2/var3";
  2. var rest = str.substring(0, str.lastIndexOf("/") + 1);
  3. var last = str.substring(str.lastIndexOf("/") + 1, str.length);
  4. console.log(rest);
  5. console.log(last);
h43kikqp

h43kikqp2#

试着这样做:

  1. var vars = "var1/var2/var3";
  2. var arrVars = vars.split("/");
  3. var lastVar = arrVars.pop();
  4. var restVar = arrVars.join("/");
  5. alert(lastVar);
  6. alert(restVar);
wb1gzix0

wb1gzix03#

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

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

jm81lzqq

jm81lzqq4#

  1. var txt = "var1/var2/var3";
  2. txt = txt.split('/')
  3. var Var1 = txt.pop();
  4. var Var2 = txt[0]+'/'+txt[1];
  5. alert(Var1);
  6. alert(Var2);
pexxcrt2

pexxcrt25#

您可以使用拆分,然后提取其最后一个索引,如下所示:
例子:

  1. var string = 'var1/var2/var3';
  2. var result = string.split('/'); //Splits into an array
  3. //var final = result[result.length -1]; //Grabs last value
  4. //result.pop(); //Removes last value
  5. var final = result.pop(); //Removes last value and grap the last value
  6. var previous = result.join('/'); //Grabs the previous part
  7. alert("Previous: " + previous + ", Final Part: " + final); //Alerts results

演示:
演示

展开查看全部
k4ymrczo

k4ymrczo6#

string.substring(开始、结束)
哪里
开始=必需。开始提取的位置。第一个字符位于索引0处
结束=可选。结束提取的位置(直至但不包括)。如果省略,它将提取字符串的其余部分

  1. var string = "var1/var2/var3";
  2. start = string.lastIndexOf('/'); //console.log(start); o/p:- 9
  3. end = string.length; //console.log(end); o/p:- 14
  4. var string_before_last_slash = string.substring(0, start);
  5. console.log(string_before_last_slash);//o/p:- var1/var2
  6. var string_after_last_slash = string.substring(start+1, end);
  7. console.log(string_after_last_slash);//o/p:- var3

  1. var string_after_last_slash = string.substring(start+1);
  2. console.log(string_after_last_slash);//o/p:- var3
展开查看全部
7cwmlq89

7cwmlq897#

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

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

5jdjgkvh8#

最简单的解决方案是使用javascript:

  1. var str = "var1/var2/var3/var4/var5";
  2. var splitted = str.split("/");
  3. var first = "";
  4. for (var i=0; i<splitted.length-1; i++) {
  5. first += splitted[i] + "/";
  6. }
  7. var second = "";
  8. if (splitted.length > 0) {
  9. second = splitted[splitted.length-1];
  10. }
  11. alert(first); // var1/var2/var3/var4/
  12. alert(second); // var5

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

展开查看全部
von4xj4u

von4xj4u9#

你也可以反复做 replace() , split() ,及 join() 在字符串上单击以获得所需的结果

  1. let str = 'var1/var2/var3';
  2. str = str.split('').reverse().join('').split(/\/(.+)/).map(x => x.split('').reverse().join('')).reverse().filter(x => x);
  3. console.log(str);

说明:

  1. str
  2. .split('') /* ['v', 'a', 'r', '/', 'v', 'a', ...] */
  3. .reverse() /* ['3', 'r', 'a', 'v', '/', 'r', ...] */
  4. .join('') /* '3rav/2rav/1rav' */
  5. .split(/\/(.+)/) /* ['3rav', '2rav/1rav', ''] */
  6. .map(x => x.split('').reverse().join('')) /* ['var3', 'var1/var2', ''] */
  7. .reverse() /* ['', 'var1/var2', 'var3'] */
  8. .filter(x => x) /* ['var/var2', 'var3'] */
展开查看全部

相关问题