JavaScript - проверьте, содержит ли строка html только пустые теги или - PullRequest
0 голосов
/ 09 мая 2019

Я отображаю календарь событий, и один из узлов json - это биография художника.

Для био узла я получу что-то вроде этого и добавлю его в био-раздел.

<p>John Doe was born in Nantucket..</p>
<p>Yada yada</p>

Однако иногда я получаю что-то вроде этого и хочу установить его на нольпоэтому он не печатает:

<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>

Как проверить строку на наличие пустых тегов и / или, в частности, &nbsp;, то есть

if(event.bio //has only empty tags || only white space || '&nbsp;') { 
     bio = null; 
}

Ответы [ 2 ]

1 голос
/ 09 мая 2019

Вы можете сделать что-то вроде:

const aux = document.createElement('div');
aux.innerHTML = yourString; //parses the html
const trimmedContent = aux.innerText.trim(); //get only the text and remove white space at the beginning and end

Затем вы можете проверить, если trimmedContent == '', чтобы узнать, пусто ли оно.

0 голосов
/ 09 мая 2019

Попробуйте

let content = "<p>&nbsp;</p><p>&nbsp; </p><p>&nbsp; </p>"

content = content = content.replace(/(<\/?[^>]+(>|$)|&nbsp;|\s)/g, ""); 

if (content === "") bio = null

Для ясности,

 content = content = content.replace(/(<\/?[^>]+(>|$)|&nbsp;|\s)/g, "");

является краткой формой:

content = content.replace(/<\/?[^>]+(>|$)/g, ""); //&nbsp;&nbsp; &nbsp;
content = content.replace(/&nbsp;/g, ""); //a space char
content = content.replace(/\s/g, ""); //empty string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...