Как получить символы из второго последнего индекса, используя indexof в javaScript?
var absoluteURL = "http://stackru.com/users/6262169/vikas-kohli"
var n = absoluteURL.lastIndexOf('/');
var result = absoluteURL.substring(n + 1);
//alert(result);
console.log(result);
Здесь я получаю результат типа 'vikas-kohli', так как я использую lastIndexOf.
Теперь, если кто-то хочет получить символы из второго последнего индекса, или это может быть третий последний индекс, то как я могу получить это?
Я надеюсь, что смогу хорошо объяснить свой вопрос
10 ответов
- Вместо того, чтобы использовать
lastIndexOf('/')
использовать метод разделения строк ('/').
var absoluteURL = "http://stackru.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);
DEMO
var absoluteURL = "http://stackru.com/users/6262169/vikas-kohli"
var splittedStr = absoluteURL.split('/');
console.log(splittedStr[splittedStr.length-2]);
Это должно работать:
var absoluteURL = "http://stackru.com/users/6262169/vikas-kohli"
var results = absoluteURL.split('/');
var result = results[results.length-2];
alert(result);
Простой цикл for сделает свое дело.
var absoluteURL = "http://stackru.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);
}
Объединить строку из индекса, который вы хотите, после разделения на /
var absoluteURL = "http://stackru.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
IndexOf или что-то подобное может не то, что вам нужно. Вместо этого вы можете использовать сплит.
var absoluteURL = "http://stackru.com/users/6262169/vikas-kohli";
var partNo = 3;
var parts = absoluteURL.split('/');
alert(parts[parts.length - partNo]);
Привет, если вы можете получить N-й индекс от пользователя, вы можете использовать это
var nthIndex = 2;
var absoluteURL = "http://stackru.com/users/6262169/vikas-kohli"
for (i = 0; i < nthIndex; i++) {
var n = absoluteURL.lastIndexOf('/');
absoluteURL = absoluteURL.substring(0,n);}
alert(absoluteURL);
Ты можешь использовать .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());
Мы можем добавить функцию, чтобы сделать это сами.
Добавьте ниже фрагмент кода:
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://stackru.com/users/6262169/vikas-kohli"
var n1 = absoluteURL.nIndexOf('/', 4);
var n2 = absoluteURL.nIndexOf('/', 5);
var result = absoluteURL.substring(n1 + 1, n2);
alert(result);
Просто разделите ваш URL с /
:
var absoluteUrl = "http://stackru.com/users/6262169/vikas-kohli";window.location.pathname;
var splitedUrl = absoluteUrl .split('/');
console.log(splitedUrl);
Затем получите нужный элемент в массиве.
Sth, как это?
var absoluteURL = "http://stackru.com/users/6262169/vikas-kohli"
var n = 2 //second last
var arr = absoluteURL.split('/')
console.log(arr[arr.length-n])