2017-02-21 12 views
1

Как получить символы из второго последнего индекса, используя indexof в javaScript?

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.

Теперь, если кто-то хочет получить символы из второго последнего индекса, или это может быть третий последний индекс, то как я могу это получить?

Я надеюсь, что я могу объяснить мой вопрос хорошо

+5

Как насчет раскола с помощью '/', а затем получать необходимые значения и присоединиться к ним. 'А = url.split ('/'); final = a.slice (a.length - n) .join ('/') ' – Rajesh

+0

Связано: http://stackoverflow.com/questions/42022542/is-possible-to-get-last-path-of-regexp -in-url/42022591 # 42022591 – Mistalis

ответ

0

Это должно работать:

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

Эта информация извлекает данные из последнего индекса. –

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

0

STH, как это?

var absoluteURL = "http://stackoverflow.com/users/6262169/vikas-kohli"  
var n = 2 //second last 
var arr = absoluteURL.split('/') 
console.log(arr[arr.length-n]) 
0

Просто разделить ваш URL с /:

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

Затем получите элемент, который вы хотите в массиве.

0

IndexOf или что-то в этом роде, возможно, не то, что вам нужно. Вместо этого вы можете использовать split.

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

1
  • Insteadof использованием 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.войти (RES);

DEMO

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

0

Простой цикл будет делать трюк.

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

Привет, если и можно получить п-й индекс от пользователя и может использовать этот

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

0

Мы можем добавить функцию, чтобы сделать это o urselves.

Добавить ниже фрагмент кода:

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