从最后一个斜杠拆分变量 - jquery

时间:2011-04-05 16:57:36

标签: javascript

我有一个变量var1/var2/var3。我想在变量中的最后一个斜杠之后存储var3部分,在另一个变量中存储之前的部分(var1/var2/)。我怎么能这样做?

8 个答案:

答案 0 :(得分:90)

您可以使用lastIndexOf获取最后一个变量,然后使用var rest = str.substring(0, str.lastIndexOf("/") + 1); var last = str.substring(str.lastIndexOf("/") + 1, str.length); 来获取其余变量。

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

jsfiddle上的示例。

{{1}}

答案 1 :(得分:18)

尝试这样的事情:

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

答案 2 :(得分:4)

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

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

alert(Var1);
alert(Var2);

答案 3 :(得分:2)

您可以使用拆分然后拉出它的最后一个索引,如下所示:

示例:

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

演示:

Demo

答案 4 :(得分:2)

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

您可以使用数组弹出方法获取最后一个网址。

答案 5 :(得分:0)

最简单的解决方案是使用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 :(得分:0)

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

Manager
  • "var1/var2/var3".split(/\/(?=[^\/]+$)/) –匹配一个斜杠
  • \/ –如果后跟
    • (?= –除斜杠外的任何内容。
    • [^\/]+ –字符串的结尾
  • $

答案 7 :(得分:0)

您也可以对字符串反复执行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'] */