Hướng dẫn reactjs html string - chuỗi html reactjs

Safely render HTML without using dangerouslySetInnerHTML.Dec 2, 2019 at 5:28

1

Safely strip HTML tags.

Automatic XSS and injection protection.

var parse = require('html-react-parser');
parse('
text
');
0

Clean HTML attributes using filters.

Interpolate components using matchers.193 gold badges67 silver badges96 bronze badges

Autolink URLs, IPs, emails, and hashtags.Apr 22, 2020 at 20:30

Render Emoji and emoticon characters.

var parse = require('html-react-parser');
parse('
text
');
1

And much more!

Usage Example: is a good day

4,2954 gold badges28 silver badges52 bronze badgesJun 15, 2020 at 14:19

answered Nov 7, 2017 at 13:29

var parse = require('html-react-parser');
parse('
text
');
2

Điều này sẽ bảo tồn định dạng cho văn bản dưới các thẻ trong khi các loại khác sẽ được in dưới dạng văn bản đơn giản.

Đã trả lời ngày 26 tháng 11 năm 2020 lúc 12:36Nov 26, 2020 at 12:36

Sunil Kumarsunil KumarSunil Kumar

3903 Huy hiệu bạc14 Huy hiệu Đồng3 silver badges14 bronze badges

Tôi tìm thấy JS Fiddle này. Điều này hoạt động như thế này

var parse = require('html-react-parser');
parse('
text
');
3

Liên kết JSFiddle

Đã trả lời ngày 22 tháng 1 năm 2016 lúc 23:58Jan 22, 2016 at 23:58

3

Tôi bắt đầu sử dụng gói NPM có tên React-HTML-Parser

Đã trả lời ngày 14 tháng 8 năm 2018 lúc 9:24Aug 14, 2018 at 9:24

DayandayanDayan

6914 Huy hiệu vàng16 Huy hiệu bạc27 Huy hiệu đồng4 gold badges16 silver badges27 bronze badges

Bạn cũng có thể sử dụng trình phân tích cú pháp () từ HTML-React-Parser. Tôi đã sử dụng giống nhau. Liên kết chia sẻ.

Đã trả lời ngày 13 tháng 4 năm 2018 lúc 9:46Apr 13, 2018 at 9:46

Abhra deyabhra deyAbhra Dey

1112 Huy hiệu bạc9 Huy hiệu đồng2 silver badges9 bronze badges

Một tùy chọn bị thiếu trong các câu trả lời hiện có là sử dụng

'}} />
8 (có sẵn trong React v16 trở lên). Tôi thấy điều này tốt nhất vì điều này cho phép bạn lưu trữ bất kỳ phần tử HTML nào dưới dạng biến JSX và tham khảo nó sau. Ngoài ra vì sử dụng
var parse = require('html-react-parser');
parse('
text
');
9 không an toàn.store any html element as a JSX variable and refer to it later. Also because using
var parse = require('html-react-parser');
parse('
text
');
9 is not secure.

Ví dụ

var parse = require('html-react-parser');
parse('
text
');
4
var parse = require('html-react-parser');
parse('
text
');
5

Các lựa chọn và cân nhắc khác:

  1. Nếu bạn đang tìm nạp HTML từ các nguồn bên ngoài, thì bạn không thể sử dụng phương pháp này vì HTML được tìm nạp sẽ ở định dạng chuỗi. Trong trường hợp đó, bạn cần phân tích HTML bằng trình phân tích cú pháp HTML như HTML-React-Parser
  2. Nếu bạn không có bất kỳ khóa hoặc thuộc tính nào, bạn cũng có thể sử dụng
    var parse = require('html-react-parser');
    parse('
    text
    ');
    0 là tốc ký cho
    var parse = require('html-react-parser');
    parse('
    text
    ');
    1
  3. Hãy nhớ rằng
    var parse = require('html-react-parser');
    parse('
    text
    ');
    9 rất nguy hiểm khi sử dụng vì mã phía máy khách độc hại có thể được tiêm qua thẻ script:
  4. @Brett cũng đã đề xuất các lựa chọn thay thế khác:
  5. Lưu ý: Sử dụng báo giá trong một variale JSX using quotes in a JSX Variale
    • Bạn không nên bao quanh một biến JSX với các trích dẫn (như một biến thông thường) - bạn nên bao quanh nó với
      var parse = require('html-react-parser');
      parse('
      text
      ');
      3
    • Bạn không nên thoát khỏi trích dẫn trong thẻ HTML của biến JSX - ví dụ: thẻ
      var parse = require('html-react-parser');
      parse('
      text
      ');
      4 trong thẻ
      var parse = require('html-react-parser');
      parse('
      text
      ');
      5 ở trên có các trích dẫn không được thoát.

Đã trả lời ngày 1 tháng 11 năm 2021 lúc 21:35Nov 1, 2021 at 21:35

GangulagangulaGangula

3.9332 Huy hiệu vàng19 Huy hiệu bạc43 Huy hiệu đồng2 gold badges19 silver badges43 bronze badges

12

Nếu bạn biết trước những thẻ nào trong chuỗi bạn muốn kết xuất; Điều này có thể là ví dụ nếu chỉ được phép một số thẻ nhất định trong thời điểm tạo chuỗi; Một cách có thể để giải quyết vấn đề này là sử dụng tiện ích chuyển đổi:

var parse = require('html-react-parser');
parse('
text
');
6

Sau đó, bạn có thể sử dụng nó như mọi khi

var parse = require('html-react-parser');
parse('
text
');
7

Đã trả lời ngày 25 tháng 2 năm 2021 lúc 18:06Feb 25, 2021 at 18:06

Điều này rất đơn giản. Và nó hoạt động hoàn hảo.very simple.
And it works perfectly.

var parse = require('html-react-parser');
parse('
text
');
8

Đã trả lời ngày 22 tháng 9 năm 2021 lúc 6:38Sep 22, 2021 at 6:38

Omar Magdyomar MagdyOmar Magdy

1.3948 Huy hiệu bạc12 Huy hiệu đồng8 silver badges12 bronze badges

đọc dữ liệu hộ bố

hùng thông minh lắm

ahihi đồ ngốc trương thanh hùng nè

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng đẹp trai

hùng thông minh lắm

ahihi đồ ngốc trương thanh hùng nè

ahihi đồ ngốc trương thanh hùng nè

hùng đẹp trai

ahihi đồ ngốc trương thanh hùng nè

hùng ebudezain

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

đọc dữ liệu hộ bố

hùng thông minh lắm

ahihi đồ ngốc trương thanh hùng nè

'}} />

hùng ebudezain

ahihi đồ ngốc trương thanh hùng nè

hùng đẹp trai

hùng ebudezain

hùng thông minh lắm

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng thông minh lắm

đọc dữ liệu hộ bố

hùng đẹp trai

ahihi đồ ngốc trương thanh hùng nè

hùng ebudezain

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng ebudezain

đọc dữ liệu hộ bố

hùng ebudezain

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

ahihi đồ ngốc trương thanh hùng nè

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

hùng thông minh lắm

hùng đẹp trai

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng ebudezain

hùng đẹp trai

hùng thông minh lắm

đọc dữ liệu hộ bố

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

ahihi đồ ngốc trương thanh hùng nè

hùng thông minh lắm

hùng thông minh lắm

var parse = require('html-react-parser');
parse('
text
');

hùng đẹp trai

ahihi đồ ngốc trương thanh hùng nè

Hùng Đẹp Trai

Nội phân chính

  • Cách sử dụng nguy hiểm
  • Sử dụng thư viện phân tích cú pháp html
  • Giải pháp 1: DangererlySetInnerHTML
  • Giải pháp 2: HTML để phản ứng phân tích cú pháp
  • Other alternatives and considerations:

đọc dữ liệu hộ bố

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

hùng thông minh lắm

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

hùng ebudezain

hùng thông minh lắm

Trong nhiều tình huống chúng ta set html động thì cũng không ngại bị chèn mã độc vào html thì cứ sử dụng phương pháp này : 

'}} />

đọc dữ liệu hộ bố

hùng ebudezain

hùng ebudezain

Trong nhiều tình huống chúng ta set html động thì cũng không ngại bị chèn mã độc vào html thì cứ sử dụng phương pháp này : 

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

đọc dữ liệu hộ bố

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

hùng ebudezain

hùng thông minh lắm

Trong nhiều tình huống chúng ta set html động thì cũng không ngại bị chèn mã độc vào html thì cứ sử dụng phương pháp này : 

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng thông minh lắm

Trong nhiều tình huống chúng ta set html động thì cũng không ngại bị chèn mã độc vào html thì cứ sử dụng phương pháp này : 

hùng ebudezain

Trong nhiều tình huống chúng ta set html động thì cũng không ngại bị chèn mã độc vào html thì cứ sử dụng phương pháp này : 

hùng thông minh lắm

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

đọc dữ liệu hộ bố

hùng ebudezain

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng ebudezain

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

hùng đẹp trai

đọc dữ liệu hộ bố

hùng ebudezain

Cách sử dụng dangerouslySetInnerHTML

hùng thông minh lắm

Trong nhiều tình huống chúng ta set html động thì cũng không ngại bị chèn mã độc vào html thì cứ sử dụng phương pháp này : 

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

strong text'}} />

hùng đẹp trai: Setting HTML from code is risky because it’s easy to inadvertently expose your users to a cross-site scripting (XSS) attack.

ahihi đồ ngốc trương thanh hùng nè

Cảnh báo nguy hiểm: Bạn dùng cách này rất dễ bị tấn công tập lệnh trên nhiều trang web (XSS).

var parse = require('html-react-parser');parse('
text
');

tôi thích vậy đó

Sử dụng thư viện parser html

Bạn có thể sử dụng thư viện html-react-parser.

$.ajax({
   url: url here,
   dataType: "json",
   success: function(data) {
      this.setState({
           action: data.action
      })
   }.bind(this)
});

Cách sử dụng: 

var parse = require('html-react-parser');
parse('
text
');
Photo by NordWood Themes on Unsplash

Sometimes you may want to render an HTML string when using React. This string may come from WYSIWYG editors. But there is a problem — JSX escapes all the HTML and thus all tags are visible to the user. Here we present 2 solutions to overcome the problem.5 gold badges70 silver badges86 bronze badges

Solution 1: dangerouslySetInnerHTMLOct 9, 2013 at 7:57

In most cases, dangerouslySetInnerHTML should be enough.Peter Wateber

Warning: Setting HTML from code is risky because it’s easy to inadvertently expose your users to a cross-site scripting (XSS) attack.4 gold badges20 silver badges25 bronze badges

Solution 2: HTML to react parser

As an alternative to dangerouslySetInnerHTML you can use html-react-parser library.

It converts an HTML string to one or more React elements.

I'm having trouble dealing with facebook's ReactJS. Whenever I do ajax and want to display an html data, ReactJS displays it as text. (See figure below)2 gold badges25 silver badges29 bronze badges

The data is displayed through the success callback function of the jquery Ajax.Oct 9, 2013 at 16:34

Is there any easy way to convert this into html? How should I do it using ReactJS?Sophie Alpert

Penny Liu36 gold badges215 silver badges235 bronze badges

5

12.8k5 gold badges70 silver badges86 bronze badges

asked Oct 9, 2013 at 7:57

  1. Peter WateberPeter Wateber - Use Unicode, save the file as UTF-8 and set the

    '}} />
    0 to UTF-8.

    '}} />
    1

  2. 3,5844 gold badges20 silver badges25 bronze badges - Use the Unicode number for the entity inside a Javascript string.

    '}} />
    2

    By default, React escapes the HTML to prevent XSS (Cross-site scripting). If you really want to render HTML, you can use the

    var parse = require('html-react-parser');
    parse('
    text
    ');
    9 property:

    '}} />
    3

  3. React forces this intentionally-cumbersome syntax so that you don't accidentally render text as HTML and introduce XSS bugs.

    '}} />
    4

  4. Juan Marco - Insert raw HTML using

    var parse = require('html-react-parser');
    parse('
    text
    ');
    9.

    '}} />
    6

2,7082 gold badges25 silver badges29 bronze badgesJan 14, 2015 at 8:10

answered Oct 9, 2013 at 16:34Brett DeWoody

Sophie AlpertSophie Alpert28 gold badges134 silver badges183 bronze badges

4

135k36 gold badges215 silver badges235 bronze badges

There are now safer methods to accomplish this. The docs have been updated with these methods.

  • Other Methods
    • Easiest - Use Unicode, save the file as UTF-8 and set the
      '}} />
      0 to UTF-8.
    • Safer - Use the Unicode number for the entity inside a Javascript string.
    • or
    • Or a mixed array with strings and JSX elements.
    • Last Resort - Insert raw HTML using
      var parse = require('html-react-parser');
      parse('
      text
      ');
      9.
    • answered Jan 14, 2015 at 8:10
    • Brett DeWoodyBrett DeWoody
    • 56.8k28 gold badges134 silver badges183 bronze badges

I recommend using Interweave created by milesj. Its a phenomenal library that makes use of a number if ingenious techniques to parse and safely insert HTML into the DOM.

import React from 'react';
import { Markup } from 'interweave';

const articleContent = "

Lorem ipsum dolor laboriosam.

Facere debitis impedit doloremque eveniet eligendi reiciendis ratione obcaecati repellendus culpa? Blanditiis enim cum tenetur non rem, atque, earum quis, reprehenderit accusantium iure quas beatae.

Lorem ipsum dolor sit amet this is a link, click me Sunt ducimus corrupti? Eveniet velit numquam deleniti, delectus

  1. reiciendis ratione obcaecati
  2. repellendus culpa? Blanditiis enim
  3. cum tenetur non rem, atque, earum quis,
reprehenderit accusantium iure quas beatae.

" // this will take the articleContent string and convert it to HTML markup. See: https://milesj.gitbook.io/interweave //to install package using npm, execute the command npm install interweave

Chukwu3meka

Interweave is a react library to safely render HTML, filter attributes, autowrap text with matchers, render emoji characters, and much more.4 gold badges28 silver badges52 bronze badges

Interweave is a robust React library that can:Nov 7, 2017 at 13:29

7

npm i html-react-parser;

import Parser from 'html-react-parser';

{Parser(this.state.archyves)}