У меня проблема. В настоящее время я ищу способ удалить любые элементы HTML из строки. Но есть два условия:
- Содержимое элементов должно быть сохранено
- Специальные элементы с определенным классом не должны быть удалены
I ' Мы уже много чего перепробовали и просмотрели множество вопросов / ответов по SO, но, к сожалению, я не могу найти ни одного из ответов. К сожалению, это намного превосходит мои способности. Но я хотел бы знать, как что-то подобное работает.
Вопрос / Ответы, которые я пробовал: Как убрать HTML тегов из строки в JavaScript? , Полоска HTML из текста JavaScript
Поэтому, когда у меня есть, например, строка, подобная этой:
You have to pay <div class="keep-this">$200</div> per <span class="date">month</span> for your <span class="vehicle">car</span>
Она должна выглядеть следующим образом после удаления:
You have to pay <div class="keep-this">$200</div> per month for your car
Я на самом деле пробовал следующие вещи:
jQuery(document).ready(function ($) {
let string = 'You have to pay <div class="keep-this">$200</div> per <span class="date">month</span> for your <span class="vehicle">car</span>';
console.log(string);
function removeHTMLfromString(string) {
let tmp = document.createElement("DIV");
tmp.innerHTML = string;
return tmp.textContent || tmp.innerText || "";
}
console.log(removeHTMLfromString(string));
console.log(string.replace(/<[^>]*>?/gm, ''));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
И я также опробовал инструмент регулярных выражений, чтобы увидеть, что получено, но, к сожалению, я также не добиваюсь большого прогресса здесь:
https://www.regexr.com/50qar
Я был бы рад, если бы кто-то мог помочь мне с этой задачей. Большое спасибо!
Обновление
Может быть, есть способ сделать это с помощью регулярного выражения? Если да, как я могу исключить свои элементы с помощью специального класса при использовании этого регулярного выражения: /<\/?[^>]+(>|$)/g
?