2016-06-24 4 views
0

Я предполагаю, что проблема чрезвычайно случайна, но не может найти решение.JavaScript получает позицию последнего символа строки внутри другой строки

У меня есть строка

var full = 'hopaopGmailb3GkI' 
var name = 'hopaop' 
var service = 'Gmail' 

Как я получаю b3GkI из исходной строки, предположим, что имя и сервис динамических значений также разобранные из строки var full.

Или , как получить индекс последнего символа переменной service внутри var full строки

мне нужно получить индекс последнего символа переменной service внутри var full строки. var index = full.indexOf(service); возвращает индекс первого символа (в этом примере - 6). Также по какой-то причине я не могу исключить службу name + из строки.

+2

индекс вар = full.indexOf (сервис) + service.length –

+0

Upvoted @VladuIonut, так как он появляется, он отметил, прежде чем я представил мой ответ =) – DabaloSe7eN

ответ

1

Version 1

var full = 'hopaopGmailb3GkI'; 
 
var name = 'hopaop'; 
 
var service = 'Gmail'; 
 
var result = full.substring(full.indexOf(service) + service.length) 
 
console.log(result);

Version 2

вы можете использовать Split

var full = 'hopaopGmailb3GkI'; 
 
var name = 'hopaop'; 
 
var service = 'Gmail'; 
 
var result = full.split(service)[1]; 
 
console.log(result);

2

var index = full.indexOf(service) + service.length; должен сделать трюк. Я также чувствую, что вы можете придумать регулярное выражение, чтобы выполнить это, но я не мастер.

+0

ohh. правильно, так просто :) – user1935987

1

Другой вариант с регулярными выражениями

var full = 'hopaopGmailb3GkI'; 
var service = 'Gmail'; 

console.log((function(source, service) { 
    var match = new RegExp('(.+)' + service + '(.+)').exec(source); 
    return { 
     'service': service, 
     'name': match[1], 
     'token': match[2] 
    }; 
})(full, service)); 

Возвращает объект как {"service":"Gmail","name":"hopaop","token":"b3GkI"}

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