JS. Как узнать встречается ли два парных тега в строке?

Столкнулся с проблемой. Написал код, он работает, но частично:

let Str = "<p>Первый параграф</p><p>Второй параграф</p>";
if (Str.includes("<p>") && Str.includes("</p>")) {
  console.log(true);
} else {
  console.log(false);
}

При тесте выдает true. Но если возьмем неповторяющийся парный тег:

let Str = "<p>Один параграф</p>"

Он также будет выдавать true, а должен выдавать false. Как можно сделать проверку?

Если в Str 2 раза встречается парные теги<p></p><p></p>должен быть true. Если в Str парные теги встречаются только один раз <p></p>- false.


Ответы (1 шт):

Автор решения: Alex Krass

Вам нужен метод, который не просто найдет какое-то вхождение, а посчитает их количество. Для этого можно использовать регулярные выражения.

let pattern = /<p>/gi

let str1 = "<p>Первый параграф</p><p>Второй параграф</p>";
if ((str1.match(pattern) || []).length > 1) {
  console.log(true);
} else {
  console.log(false);
}

let str2 = "<p>Первый параграф</p>";
if ((str2.match(pattern) || []).length > 1) {
  console.log(true);
} else {
  console.log(false);
}

→ Ссылка