2016-06-08 3 views
0

У меня есть этот код:Удалить часть После последнего вхождения паттерна слова в строке

var str = 'country/city/area' 
var idx = str.lastIndexOf('country/city') 
// idx = 0 

И IDX всегда равен 0. Если не IDX быть 12? Моя цель - использовать его substr(), чтобы взять строку 'area' из str.

+3

LastIndexOf возвращает первый индекс позиции последнего вхождения строки, а это означает, что это правильно. – nem035

+2

* "Метод lastIndexOf() возвращает индекс в вызывающем объекте String последнего вхождения указанного значения, поиск в обратном направлении изIndex." * Https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Reference/Global_Objects/String/lastIndexOf –

+0

Хорошо, я понял. Но что я могу сделать в моем случае, чтобы получить последний индекс позиции? – pmqa

ответ

0
var str = 'country/city/area' 
var pattern = 'country/city/' 
var idx = str.lastIndexOf(pattern) + pattern.length 
var substring = str.substring(idx, str.length) 

Объяснение

1) Определите шаблон Вы ищете

2) Найдите начало рисунка и добавить длину паттерна => теперь вы в конце

3) Скопируйте часть позади рисунка в конец строки

0

, если вы хотите, чтобы последнее слово, вы можете найти последнюю косую черту и получить все после того, как:

str.substr(str.lastIndexOf('/') + 1) 

, если вы хотите, чтобы получить все, что после «страны/города /», но для примера вы не знаете, если это первая часть строки, вы можете использовать

str.substr(str.indexOf('country/city/') + 13); 

это не 100% ясно из вашего вопроса, что именно вы пытаетесь достичь хотя.

0

Вы хотите добавить длину строки, которую вы ищете:

var str = 'country/city/area'; 
var checkStr = 'country/city'; 
var idx = str.lastIndexOf(checkStr); 
var lastCharIndex = idx + checkStr.length; 

// idx = 0 
// idx = 12 

примечание - это было бы 12, не 13, потому что вы не включили в финал «/» в вашем параметре lastIndexOf.

0

Возможно, вы достигнете своей цели следующим образом:

var str = 'country/city/area', 
 
newStr = str.replace("/area",""); 
 
console.log(newStr);

Смежные вопросы