Пользователь jquery должен заменить слово другим универсальным, но игнорировать html теги, атрибуты, теги сценария и т. Д. - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу заменить слово «сильный» другим словом «фирма» во всем доме. Однако я хочу убедиться, что это заменяет только текст, а не внутри тегов html или тегов скрипта.

<span> He was strong </span> следует заменить на <span>He was firm </span>, но <strong> He was strong </strong> не следует заменять на <firm>He was firm </firm> но вместо этого <strong> He was firm </strong>

Он также не должен заменять его внутри html атрибутов или тегов скрипта

<script>
var strong= 2;
<script>

Код

   const html = jQuery(document.body).html();


   var re = new RegExp("\\b"+word+"\\b","g");

   const replaced = html.replace(re, replacement);

   jQuery(document.body).html(replaced);

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

RegEx соответствует открытым тегам, кроме X HTML автономных тегов

Подводя итог: необходимо заменить все вхождения слова другим словом, не делая этого внутри теги сценария, html теги и т. д. c.

1 Ответ

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

Вы можете попробовать код, указанный ниже? $('*').each(function(index, element) { var newtext=$(element).text().replace("strong","firm"); $(element).text(newtext); });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...