5

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var n = absoluteURL.lastIndexOf('/');
var result = absoluteURL.substring(n + 1);
//alert(result);
console.log(result);

在这里,当我使用 lastIndexOf 时,我得到了类似“vikas-kohli”的结果。

现在,如果有人想从倒数第二个索引中获取字符,或者它可能是倒数第三个索引,那么我该如何获取呢?

我希望我能很好地解释我的问题

4

10 回答 10

5
  • 而不是lastIndexOf('/')使用字符串split('/')方法。

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var splittedStr = absoluteURL.split('/');
console.log(splittedStr);

  • 然后从数组中获取所需的元素。

    var res = splittedStr[splittedStr.length-n]; // n: 1,2,3.. cosnole.log(res);

演示

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var splittedStr = absoluteURL.split('/');
console.log(splittedStr[splittedStr.length-2]);

于 2017-02-21T11:00:13.783 回答
0

嗨,如果您可以从用户那里获得第 n 个索引,您可以使用它

 var nthIndex = 2;
 var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"  
 for (i = 0; i < nthIndex; i++) {   

        var n = absoluteURL.lastIndexOf('/');           
            absoluteURL = absoluteURL.substring(0,n);}
alert(absoluteURL);
于 2017-02-21T11:05:52.813 回答
0

将字符串拆分后从您想要的索引中连接起来/

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli";     
var n = 2; // set the index from where you want to get characters
var arr = absoluteURL.split('/');
var a = [];
for(var i=n,j=0; i>=0; i--,j++){
  a[j] = arr[arr.length-i];
}
console.log(a.join('')); // you can join it with any character

于 2017-02-21T11:07:03.857 回答
0

这应该有效:

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var results = absoluteURL.split('/');
var result = results[results.length-2];
alert(result);
于 2017-02-21T10:52:41.970 回答
0

我们可以添加一个函数来自己做。

添加以下代码段:

String.prototype.nIndexOf = function (char, index) {
if (index >= this.split(char).length)
    return -1;
else
    return this.split(char, index).join(char).length;
}

然后你可以使用它如下:

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var n1 = absoluteURL.nIndexOf('/', 4);
var n2 = absoluteURL.nIndexOf('/', 5);
var result = absoluteURL.substring(n1 + 1, n2);
alert(result);
于 2017-02-21T11:09:35.523 回答
0

一个简单的 for 循环就可以解决问题。

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"    
var n = absoluteURL.indexOf('/');
absoluteURL = absoluteURL.substring(n+2); // Becasue there are two / first

for(i = 0; i < x ; i++) // x should be such that if it is 1, then only the last string will come, if 2, then the last two strings
{
    n = absoluteURL.indexOf('/');
    absoluteURL = absoluteURL.substring(n+1);
}
于 2017-02-21T11:01:26.327 回答
0

您可以.split()window.location.pathname

var locPath = "users/6262169/vikas-kohli"; // window.location.pathname;
var arr = locPath.split('/');

arr.forEach(function(item){
  console.log(item);
});

具有特定索引:

var locPath = "users/6262169/vikas-kohli"; // window.location.pathname;
var arr = locPath.split('/');

console.log('last::::',arr[arr.length-1]);
console.log('second last::::', arr[arr.length-2]);

或者后续pop()可以给你数组的最后一项:

var locPath = "users/6262169/vikas-kohli"; // window.location.pathname;
var arr = locPath.split('/');

console.log(JSON.stringify(arr, 0, 0), '<---last::::popped-->',arr.pop());
console.log(JSON.stringify(arr, 0, 0), '<-----second last::::popped--->', arr.pop());

于 2017-02-21T10:53:32.517 回答
0

像这样吗?

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"     
var n = 2 //second last
var arr = absoluteURL.split('/')
console.log(arr[arr.length-n])
于 2017-02-21T10:54:35.787 回答
0

只需将您的 URL 拆分为/

var absoluteUrl = "http://stackoverflow.com/users/6262169/vikas-kohli";window.location.pathname;
var splitedUrl = absoluteUrl .split('/');
console.log(splitedUrl);

然后在数组中获取你想要的元素。

于 2017-02-21T10:55:24.303 回答
0

IndexOf 或类似的东西可能不是你需要的。您可以改用拆分。

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli";
var partNo = 3;
var parts = absoluteURL.split('/');
alert(parts[parts.length - partNo]);

于 2017-02-21T10:57:12.717 回答