0

Подскажите, пожалуйста.

Необходимо выделить последовательность идущих друг за другом ссылок <a></a>, <a></a>

Внутри <a></a> Могут быть любые символы, например <a>**<span></span>**</a>,

Но если между ссылками <a></a> есть другие теги, например <a></a></span>, <a></a>, то такую последовательность брать не стоит

Единственное, что пока приходит в голову это

(<a>.*<\/a>) Но данное выражение цепляет все между Первым <a> в строке и последним </a>

Исходные данные:

1.<p><a><span></span></a>, <a></a>, <a></a></p>

2.<p><span><a></a><span><a></a>, <a></a></p>

Должно выбираться:

  1. <a><span></span></a>, <a></a>, <a></a>
  2. <a></a>, <a></a>

1 Answers1

1

Рекомендуется к прочтению - Жадные и ленивые квантификаторы. А выражение будет следующим:

/(<a>.*?<\/a>)/gi

let rExp = /(<a>.*?<\/a>)/gi;
let sTxt = `
  1. <p><a><span>1</span></a>, <a>2</a>, <a>3</a></p>
  2. <p><span><a>4</a><span><a>5</a>, <a>6</a></p>
`;
console.log(sTxt.match(rExp));
UModeL
  • 34,026
  • 6
  • 29
  • 71