首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中移除强标记及其内容

从字符串中移除强标记及其内容
EN

Stack Overflow用户
提问于 2016-09-24 13:27:46
回答 4查看 623关注 0票数 0

我在下面的字符串中使用这个html,我想知道如何从字符串中删除/过滤所有强标记及其文本?

html

代码语言:javascript
复制
<p>
    <br>
    2-3 spsk græsk yoghurt, gerne 10 % 
    <strong>Dressing: </strong>
    <br>
    1 lille spsk god mayonnaise
    <br>
    1-2 tsk æbleeddike 
    <br>
    1-2 tsk honning 
    <br>
    himalayasalt og friskkværnet hvid peber
    <br>
</p>

到目前为止,我有这个,但似乎只有当它在顶部时才移除强标记。

代码语言:javascript
复制
var ingredientsArray = ingredients.split('<br>').map(it => it.trim()).filter(it => !!it && !it.startsWith('<strong>'));
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-24 13:42:17

与其试图操作字符串,不如将CSS规则应用到将其放入DOM中的任何地方:

代码语言:javascript
复制
strong { display: none; }
票数 0
EN

Stack Overflow用户

发布于 2016-09-24 13:40:46

您可以为此使用DOM:

代码语言:javascript
复制
function stripStrong(html) {
    var span = document.createElement('span');
    span.innerHTML = html;
    [...span.getElementsByTagName('strong')].reverse().forEach( 
        strong => strong.parentNode.removeChild(strong)
    );
    return span.innerHTML;
}

var html = `<p>
    <br>
    2-3 spsk græsk yoghurt, gerne 10 % 
    <strong>Dressing: </strong>
    <br>
    1 lille spsk god mayonnaise
    <br>
    1-2 tsk æbleeddike 
    <br>
    1-2 tsk honning 
    <br>
    himalayasalt og friskkværnet hvid peber
    <br>
</p>`;

console.log(stripStrong(html));

请注意,如果strong标记具有属性、样式、与其他strong标记嵌套等,这也有效.正则表达式可能会遇到麻烦的东西。

票数 2
EN

Stack Overflow用户

发布于 2016-09-24 13:41:15

将字符串解析为HTML很可能是一种方法,具体取决于目标是什么?

代码语言:javascript
复制
var ingredients = '<p><br>2-3 spsk græsk yoghurt, gerne 10 % <strong>Dressing: </strong><br>1 lille spsk god mayonnaise<br>1-2 tsk æbleeddike <br>1-2 tsk honning <br>himalayasalt og friskkværnet hvid peber<br></p>';

var doc = new DOMParser().parseFromString(ingredients, 'text/html');

[].forEach.call(doc.querySelectorAll('strong'), function (item) {
    item.parentNode.removeChild(item);
});

document.body.innerText = '<pre>' + doc.body.innerHTML + '</pre>';

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39676853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档