#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
если совпадения нет.
Ресурсы:
- Ссылка на MDN для
String.prototype.match
: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match - Чит-лист регулярных выражений MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet
Комментарии:
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 })