JavaScript regex - как получить текст между фигурными скобками

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

на самом деле он не сказал, как на самом деле извлечь текст. Итак, я зашел так далеко:

var cleanStr = "Some random {stuff} here";
var checkSep = "{.*?}"; 
if (cleanStr.search(checkSep)==-1) { //if match failed
  alert("nothing found between brackets");
} else {
  alert("something found between brackets");
}

Как мне извлечь "материал" из строки? А также, если я возьму это дальше, как я могу извлечь "материал" и "предложение" из этого строка:

var cleanStr2 = "Some random {stuff} in this {sentence}";

Ура!

2 ответов


извлечь все вхождения в фигурные скобки, вы можете сделать что-то вроде этого:

function getWordsBetweenCurlies(str) {
  var results = [], re = /{([^}]+)}/g, text;

  while(text = re.exec(str)) {
    results.push(text[1]);
  }
  return results;
}

getWordsBetweenCurlies("Some random {stuff} in this {sentence}");
// returns ["stuff", "sentence"]

создать "группу захвата", чтобы указать текст, который вы хотите. Используйте строку.функция replace () для замены всей строки только обратной ссылкой на группу захвата. Вы остаетесь с текстом, который хотите.