очень сложные символы HTML в виде текста - PullRequest
0 голосов
/ 14 марта 2012
<span class="WorkingHours">
   M,W,Th,F 7:30 AM - 4:00 PM &lt;br /&gt;Tu 7:30 AM - 6:00 PM &lt;br /&gt;
</span>

будет отображаться как

M,W,Th,F 7:30 AM - 4:00 PM <br />Tu 7:30 AM - 6:00 PM <br />

Теперь мне нужно заменить &lt;br /&gt; как пустое пространство перед тем, как оно будет отображено ??Я уже задавал подобный вопрос, но я недооценил хитрость этого .. Я сделал это

$('.WorkingHours').text().replace(/<br \/>/g, " ");

не сработало .. кто-нибудь может мне помочь в этом?

Разве не должен?это работа?

$('.WorkingHours').text().replace(/&lt;br \&gt;/g, " "); 

Ответы [ 3 ]

2 голосов
/ 14 марта 2012

Это будет работать:

$('.WorkingHours').text(function(i, text) {
    return text.replace(/<br\s*\/?>/g, " "); 
});

DEMO

В этом случае .html() вернет HTML-сущности (&lt;) тогда как .text() возвращает декодированные символы (то есть <).Учитывая это,

$('.WorkingHours').text().replace(/<br \/>/g, " ")

на самом деле также работает , но вам все равно придется присвоить результат обратно элементу.

См. Также мой предыдущий ответ.


Относительно замены последнего <br /> другим символом: это может быть возможно с регулярными выражениями, но в этом случае я бы просто проанализировал текст какHTML и выполните ту же операцию, что я показал в моем предыдущем ответе :

var $content = $('<div />').html($('.WorkingHours').text());
$content 
 .find('br').last().replaceWith('.')
 .end().replaceWith(' ');

$('.WorkingHours').html($content.html());

DEMO

0 голосов
/ 14 марта 2012

Если у вас есть html-сущности в разметке, попробуйте заменить их

   replace('&lt;br \/&gt;', ' ')

Похоже, вы пропустили "/"

0 голосов
/ 14 марта 2012

вам нужно экранировать символы HTML, чтобы завершить шаблон ...

replace(/\<br \/\>/g, " ");

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