如何在javaScript中使用indexof从最后一个索引中获取字符?

时间:2017-02-21 10:48:12

标签: javascript jquery url lastindexof

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

我在这里得到的结果就像'vikas-kohli',因为我使用的是lastIndexOf。

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

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

10 个答案:

答案 0 :(得分:2)

  • 而不是使用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);

<强>样本

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

答案 1 :(得分:0)

这应该有效:

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

答案 2 :(得分:0)

您可以在.split()上使用window.location.pathname

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

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

使用特定索引:

&#13;
&#13;
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]);
&#13;
&#13;
&#13;

或后续pop()可以为您提供最后一项数组:

&#13;
&#13;
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());
&#13;
&#13;
&#13;

答案 3 :(得分: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])

答案 4 :(得分:0)

只需将您的网址与var absoluteUrl = "http://stackoverflow.com/users/6262169/vikas-kohli";window.location.pathname; var splitedUrl = absoluteUrl .split('/'); console.log(splitedUrl);分开:

&#13;
&#13;
{{1}}
&#13;
&#13;
&#13;

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

答案 5 :(得分:0)

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

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

答案 6 :(得分: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);
}

答案 7 :(得分: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);

答案 8 :(得分: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

答案 9 :(得分: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);