javascript 如何在angular2中从文本中删除html标签

czfnxgou  于 2023-03-21  发布在  Java
关注(0)|答案(5)|浏览(143)

我正在使用rss源,并从我的服务器获得rss源,所以我发送stringfy数据,但当我在我的angular 2应用程序中绑定它时,它会显示带有html标签的文本,因此我们可以删除此标签。
下面是服务器代码:

exports.newspage=function(req,resp){
db.executeSql("select header,text,teaser from news_d",function(data,err){
        if(err){
            resp.writeHead(200,{"Content-Type":"text/html"});
            resp.write("<html><head><title>500</title></head></html>");
        }
        else{
            resp.writeHead(200,{"Content-Type":"x-application/json"});
            resp.write(JSON.stringify(data));
        }
        resp.end();
    });
};

app.get('/newspage', function(req, resp) {

    emp.newspage(req,resp);

});

service.ts:

gettagesnews(){
     let headers = new Headers();
       headers.append('x-access-token',this.token);
         var options = new RequestOptions({headers: headers});
      return this.http.get('http://services.com:9000/newspage/',options).map((res:Response) => res.json())
    .catch((error:any) => Observable.throw(error.json().error || 'Server error'));
  }

news.ts:

tagesnews:Array<TagesnewsList>;

this.newsauth.gettagesnews().subscribe((dailynews)=>{
    this.tagesnews=dailynews;
  });

网页:

<div *ngFor="let daily of tagesnews">
       <span style="font-size: 13px">{{daily.text}}</span> </button>
    </div>

我得到了一些这样的回应:
sample text

uqdfh47h

uqdfh47h1#

你只需要绑定html:

<div *ngFor="let daily of tagesnews">
   <span style="font-size: 13px" [innerHTML]="daily.text"></span>
</div>
flvlnr44

flvlnr442#

所有的[innerHTML]答案都有实际呈现的HTML内容......所以加载了图像等。如果你不想这样,只需要文本......你可以使用这样的转换方法:

stripHtml(html: string) {
    var div = document.createElement("DIV");

    div.innerHTML = html;

    let cleanText = div.innerText;

    div = null; // prevent mem leaks

    return cleanText;
}
vwoqyblh

vwoqyblh3#

使用replace方法和regx从内容中删除不需要的模式。

content.replace(/<[^>]*>/g, '\n')
eqzww0vc

eqzww0vc4#

有两种方法来处理它。
1)在html文件中使用innerHTML标记,如下所示=

<div>
      <pre [innerHTML]="description"></pre>
</div>

这里,description是包含带有html标记(<div>hi<br></br></div>)的数据的字段
2)第二种方法是将html标签数据转换为纯字符串,然后与相应的表单控件绑定。
像:-formData['description'] = formData['description'].replace(/<[^>]*>/g, '');

ie3xauqp

ie3xauqp5#

如果你正在处理一个数组,并且这个数组包含html标签,最简单的方法如下。这可能会帮助那些从数组中渲染带有html标签的文本的人

<div *ngFor="let daily of tagesnews; let i = index">
    <span [innerHTML]="arrayName[i]"></span>
</div>

相关问题