简体   繁体   English

移除所有<br>字符串中的标签 - 未按预期工作

[英]Remove all <br> tags from within a string – not working as expected

I have tried a dozen of solutions and nothing seem to help.我已经尝试了十几种解决方案,但似乎没有任何帮助。

HTML: HTML:

<div class="mont-text-content mobile">С чего следует начинать запуск своего бизнеса.
    <br><br>Как и где находить идеи для бизнеса.
    <br><br>Как справляться со своими страхами и обрушивающейся критикой родных, друзей и знакомых. Когда вам говорят, что ничего не получится?
    <br><br>Как понять, что вам действительно следует ступать на путь предпринимательства и заниматься бизнесом, а не работать на дядю с 9 до 18.
    <br><br>Как себя мотивировать и находить силы, чтобы не сдаться?
    <br><br>На все эти и другие вопросы вы найдете ответы на нашем юридическом бизнес-вебинаре.</div>

<div class="mont-text-content mobile">Правильный выбор видов деятельности и организационно-правовой формы вашего будущего бизнеса является очень важным фактором.
    <br><br>Во-первых, для легализации деятельности, возможности открытого взаимодействия с государственными и частными органами, контрагентами, инвесторами и пр., оптимизации операций, которые подлежат налогообложению.
    <br><br>А во-вторых, для возможности действовать в рамках правового поля, используя законодательство в качестве мощного инструмента для защиты и развития своего бизнеса.
    <br><br>Вы узнаете, в чём состоит отличие ФЛП на 1 группе от 2 и 3 групп. А также какая организационно-правовая форма, по состоянию на сегодня, является самой оптимальной и менее «затратной» для бизнеса.</div>

JS: JS:

$( ".mont-text-content.mobile" ).each(function( index ) {
    let content = $(this).text();
    let newContent = content.replace(/^(\s*<br\s*\/?\s*>\s*)*|(\s*<br\s*\/?\s*>\s*)*\s*$/g, '');
    alert( index + ": " + newContent );
});

And here is a link to a JSFiddle这是一个指向JSFiddle的链接

As you can see, the <br> tags are converted into strange uni-code characters and are not being removed from the string.如您所见, <br>标签被转换为奇怪的 uni-code 字符,并没有从字符串中删除。

You can do something like this though i'm not sure if this will be most effective:你可以做这样的事情,但我不确定这是否最有效:

 var x =    $( ".mont-text-content.mobile" ).html();
 var res = x.replace('<br>',"");
 $(".mont-text-content.mobile" ).html(res);

you can do something like this sorry for replacing with random text it's just to be more clear.你可以做这样的对不起用随机文本替换它只是为了更清楚。

 $(".mont-text-content.mobile").each(function() { $(this).html($(this).html().replace(/\<br>/g, "")); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="mont-text-content mobile"> Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit</div> <div class="mont-text-content mobile"> Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit <br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit</div>

You can do this simply some way like this one:你可以像这样简单地做到这一点:

document.querySelectorAll('.mont-text-content').forEach((divElm) => {
    Array.from(divElm.children).forEach((elm) => {
        if (elm.tagName === 'BR') {
            elm.remove();
        }
    });
});

It is in ES6.它在 ES6 中。 But it is easy to rewrite to ES5.但是改写成 ES5 很容易。

In first I finded all elements with class name and than itinerate these elements in forEach loop.首先,我找到了所有名称为 class 的元素,然后在 forEach 循环中遍历这些元素。

Next is needed convert List of HTML elemets to array and go throw the array and remove the element if it is a br tag.接下来需要将 HTML 元素列表转换为数组,如果它是 br 标签,则 go 抛出数组并删除元素。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM