сопоставить текст за пределами указанного тега c html - PullRequest
0 голосов
/ 13 апреля 2020

Вдохновленный этим вопросом , как сопоставить текст вне указанного тега c HTML?

целевой текст: "targettring"
исключая HTML тег: скрипт

<div>
    <h1>targetstring</h1> <= should match
    <span>targetstring</span> <= should match
</div>
<script>
   var blah = 'targetstring'; <= should not match
</script>
targetstring <= should also match

РЕДАКТИРОВАТЬ:
Простите за туманность дубликата. Нет, это не дубликат. Вдохновленный вопрос предназначен для сопоставления любых тегов. Этот вопрос предназначен для соответствия тегу speci c.

Я пытался использовать регулярное выражение (?<!<script(?:.|\n)*)targetstring(?!(?:.|\n)*<\/script>) в качестве возможного решения, но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

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

rule = /<(\w+>)(.+)<\/?\1/g;

0 голосов
/ 13 апреля 2020

var blah = 'thespecialone';
var matchedElements = Array.prototype.filter.call(document.querySelectorAll("*"),function(element) {
    return element.textContent === blah;
});
console.log(matchedElements);
<div>
  <h1>thespecialone<h1>
</div>

Примечание Я предположил, что вы хотите точное совпадение

...