Извлечение подстроки из двух слов

#javascript

#javascript

Вопрос:

Я пытаюсь найти чистый способ извлечения подстроки из двух других подстрок.Пока я могу делать это, ориентируясь на определенный символ, но не на строку. Например (это не работает)

  var element = "Firstconstantmystring_lastconstant";
 var mySubString = element.substring(
                            element.lastIndexOf("Firstconstant")   1,
                            element.lastIndexOf("_lastconstant")
                        );
  

Я пытаюсь извлечь «mystring» из полной строки. Я знаю, что «Firstconstant» и «_lastconstant» всегда будут одинаковыми. Благодарен за любую помощь.

Ответ №1:

Вы можете использовать регулярное выражение.

 var string = 'Firstconstantmystring_lastconstant'
console.log(string.match(/(?<=Firstconstant)[sS]*(?=_lastconstant)/))  

Это вернет массив, первый элемент которого является желаемым результатом, если есть совпадение или null если совпадения нет.

Ресурсы:

Комментарии:

1. Вы также должны упомянуть о производительности между подстрокой и регулярным выражением!!!

Ответ №2:

Вы должны взять длину из первого:

 var element = "Firstconstantmystring_lastconstant";
var mySubString = element.substring(
                            "Firstconstant".length,
                            element.lastIndexOf("_lastconstant")
                        );
console.log(mySubString);  

Ответ №3:

 function substringBetween(s, a, b) {
var p = s.indexOf(a)   a.length;
return s.substring(p, s.indexOf(b, p));
}

var element = "Firstconstantmystring_lastconstant;";
var mySubString = substringBetween(element,'Firstconstant','_lastconstant')

console.log({mySubString })