Hướng dẫn how to remove html tag in string js? - Làm thế nào để loại bỏ thẻ html trong chuỗi js?

cleanText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");

Đo lọc từ trang web này (web.achive).

Regex này tìm kiếm

'
Hello
' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
4, một chém tùy chọn
'
Hello
' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
5, một hoặc nhiều ký tự không phải là
'
Hello
' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
6, sau đó
'
Hello
' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
6 hoặc
'
Hello
' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
8 (phần cuối của dòng)

Examples:

'
Hello
' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^

Nhưng nó không phải là chống đạn:

'If you are < 13 you cannot register' ==> 'If you are '
            ^^^^^^^^^^^^^^^^^^^^^^^^
'
Hello
' ==> ' 42">Hello' ^^^^^^^^^^^^^^^^^^ ^^^^^^

Nếu ai đó đang cố gắng phá vỡ ứng dụng của bạn, Regex này sẽ không bảo vệ bạn. Nó chỉ nên được sử dụng nếu bạn đã biết định dạng đầu vào của mình. Như những người hiểu biết khác và chủ yếu là người lành mạnh đã chỉ ra, để các thẻ dải an toàn, bạn phải sử dụng trình phân tích cú pháp.

Nếu bạn không có trình phân tích cú pháp thuận tiện như DOM và bạn không thể tin vào đầu vào của mình để ở định dạng phù hợp, bạn có thể tốt hơn khi sử dụng gói như SANITIZE-HTML, và các chất khử trùng khác cũng có sẵn.

Bình luận

  1. Kịch bản của bạn hoạt động tuyệt vời! Chúc mừng!

  2. điều này thật tuyệt, tôi thích nó

  3. Dải hàm (html) {var tmp = document.createelement ("div"); tmp.innerhtml = html; Trả về TMP.TextContent || tmp.innertext; }
    {
    var tmp = document.createElement("DIV");
    tmp.innerHTML = html;
    return tmp.textContent || tmp.innerText;
    }

    • Điều này thậm chí còn tốt hơn cho nhu cầu của tôi. Không có vấn đề gì với các nhân vật đặc biệt, v.v.

    • Đó là lời khuyên khủng khiếp!

      Nếu vì một lý do nào đó (như mục đích độc hại của người dùng) đối số HTML chứa thẻ tập lệnh, thì giờ đây bạn đã mở ra cho các cuộc tấn công XSS !!!

      Don Tiết sử dụng DOM cho một cái gì đó không yêu cầu nó.

      Ngoài ra, DOM thực sự chậm.

    • Giải pháp này rất tốt cho việc sử dụng nội dung bên trong từ đoạn văn trong cửa sổ JS ALER
      thanks

    • Pushpinder, đáng yêu. Làm việc tuyệt vời
      Lovely. Worked great

    • Nếu bạn không cần hỗ trợ IE6, có thể thử sử dụng trực tiếp Domparser vì nó đã giành được hình ảnh tải xuống cũng như thực thi các tập lệnh:

      function stripHtml(dirtyString) {
        const doc = new DOMParser().parseFromString(dirtyString, 'text/html');
        return doc.body.textContent || '';
      }
      

      Bây giờ nếu bạn chạy một cái gì đó như

      '
      Hello
      ' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
      9, nó đã giành được các vấn đề trong khi vẫn cho phép trình duyệt thực hiện công việc.

    • One-Liner:

      Ở đây, một người dùng một lớp nếu bạn tình cờ sử dụng jQuery:one-liner if you happen to be using jQuery anyway:

      'If you are < 13 you cannot register' ==> 'If you are '
                  ^^^^^^^^^^^^^^^^^^^^^^^^
      '
      Hello
      ' ==> ' 42">Hello' ^^^^^^^^^^^^^^^^^^ ^^^^^^
      0

  4. Này !!! .. điều này thật lố bịch ..

  5. Cảm ơn bạn cho ví dụ tuyệt vời

  6. Cảm ơn, điều này làm chính xác những gì tôi cần (và rất chính xác, quá!)

  7. Cảm ơn! Một lưu ý nhanh về RegEXP: Các I I I không cần thiết ở đây vì không có nhân vật nào không nhạy cảm với trường hợp. Tuy nhiên, nó làm chính xác những gì bạn muốn một trong hai cách.

  8. Đẹp, nhưng dấu ngoặc đơn là không cần thiết.

    .replace (/]+>/ig, Hồi giáo);

  9. Xin chào :)

    Tôi đã thấy hình thức liên hệ của bạn và tôi phải nói rằng tôi yêu nó! Bạn có một hướng dẫn hoặc một cái gì đó tương tự? Nó là một điều tuyệt vời :)^ Hy vọng sẽ được nghe một số tin tức về bạn,
    Do you have a tutorial or something like that? It’s a wonderful one :)^
    Hope to hear some news of you,

    Một độc giả người Pháp,

    Florian

  10. Cảm ơn vì kịch bản :)

    @Ricard: Nếu bạn muốn tạo một bản sao của biểu mẫu liên hệ, chỉ cần xem nguồn hoặc lưu trang này cho bạn cục bộ;)

  11. Trang web Beautul Cảm ơn bạn cho ví dụ tuyệt vời

  12. Các /i cho trường hợp không nhạy cảm chắc chắn được khuyến nghị. Khi sử dụng hài lòng, IE tạo ra các thẻ trường hợp trên, Mozilla sẽ chỉ tạo ra chữ thường, để tước bỏ những người bạn cần trường hợp không nhạy cảm.
    When using contenteditable, IE produces upper case tags, mozilla would only create lower case… To strip those you need it case insensitive.

    • Dscout, điều này là không chính xác. Do đó, không có ký tự bảng chữ cái được chỉ định trong biểu thức chính quy - bộ điều chỉnh không nhạy cảm trường hợp không ảnh hưởng đến không ảnh hưởng đến.

  13. Xin chào

    Tôi có mã sau:

    var text = ‘[$ ssincludexml (docName, wc wcm: root/wcm: fement [@name = hồi innerpage_content,]/text () var stripedString = text.replace (/(]+)>)/ig, phạm lỗi);
    var StrippedString = text.replace(/(]+)>)/ig,””);

    trong đó ‘[$ ssincludexml (docName, Wan WCM: root/wcm: fement [@name = xông InnerPage_content,]/text (),) $] Nhưng tôi đang nhận được lỗi không kết thúc của chuỗi theo nghĩa đen ở dòng đầu tiên.
    is Idoc script that brings a block of HTML from a placeholder. But i am getting “unterminated string literal” Error at first line.

    Những gì tôi muốn làm là xóa hoặc tước tất cả các thẻ HTML và lấy văn bản đơn giản ra khỏi đánh dấu đó.

    Vui lòng cho tôi biết nếu có bất kỳ giải pháp.

    Cảm ơn

  14. Hoạt động tuyệt vời nhưng không gian trắng nhất. & nbsp;

  15. Cảm ơn bạn! Nó rất hữu ích cho tôi và tôi nghĩ rằng đó là hữu ích cho tất cả mọi người. Cám ơn bạn một lần nữa!
    Thank you again!

  16. Vâng, giải pháp này đã loại bỏ tất cả các loại HTML, đoạn văn, ngắt dòng, phong cách nội tuyến, v.v.

  17. Điều này không hoạt động cho IE. Vui lòng cung cấp giải pháp cho thẻ dải trong JavaScript hoạt động cho tất cả các trình duyệt

  18. Cảm ơn vì kịch bản này, nó hoạt động tuyệt vời
    It work greate

  19. Tôi đang thử nó trên

    thông điệp var;

        firstName = document.getElementById("username").value;
    
        if (firstName == null || firstName == "" || firstName == NaN || firstName == "First Name") {
            message = "Please Add some name.";
            document.body.insertAdjacentHTML("BeforeEnd", "" + message + "");
        }
        else {
            if (document.getElementById("myMessage")) {
                debugger;
                arguments = document.getElementById("myMessage").value.replace(/(]+)>)/ig, "");
            }
        }
    

    Nhưng nó không hoạt động và nói

    Không thể gọi phương thức ‘thay thế, không xác định

  20. Đã tự hỏi làm thế nào điều này sẽ được thực hiện nếu tôi chỉ muốn xóa các thẻ HREF khỏi một chuỗi văn bản, thay vì xóa tất cả các thẻ? Tôi đang cố gắng lấy một trang văn bản từ một trang web nhưng tôi chỉ muốn văn bản thuần túy với các thẻ định dạng (P, UL, LI). Hy vọng điều này có ý nghĩa, cảm ơn trước.
    Hope this makes sense, thanks in advance.

  21. Điều này là tuyệt vời! Cảm ơn!

  22. Bạn có bị thiếu hay không?

    /(<\S([^>]+)>)/ig
    

    • Có nghĩa là không phải là khoảng trắng và ^> có nghĩa là không lớn hơn, vì vậy Regex đã sửa đổi của bạn chỉ đảm bảo rằng các thẻ ký tự đơn sẽ không được thay thế.

  23. Cảm ơn, nó hoạt động tốt.
    Its working fine.

  24. Mát mẻ! Điều này hoàn toàn hoạt động…

  25. What about < b r / > or < h r / > (the self closing tags) ?

  26. Có vẻ như của Newin Newinput, không làm gì cả? Vì vậy, nó không liên quan hoặc có một vấn đề với mã.

  27. Tôi đã phát triển điều tương tự bằng cách sử dụng biểu thức chính quy JavaScript. Nó sẽ loại bỏ tất cả các thẻ HTML không bao gồm thẻ được cung cấp trong danh sách loại trừ của người dùng. Mã nguồn cũng có sẵn trên kiểm tra GitHub tại đây. Vũ nữ thoát y thẻ HTML
    It’ll strip all the html tags excluding tag provided in exclude list by user.
    source code is also available on github
    check here. HTML Tag Stripper

  28. Đẹp, nhưng nó không an toàn, tôi đã sử dụng jQuery:

    'If you are < 13 you cannot register' ==> 'If you are '
                ^^^^^^^^^^^^^^^^^^^^^^^^
    '
    Hello
    ' ==> ' 42">Hello' ^^^^^^^^^^^^^^^^^^ ^^^^^^
    1

  29. document.body.innerText

    B ”> ~ thất bại

  30. Nhưng mã này không hoạt động tốt với nội dung bảng HTML.

  31. Làm thế nào có thể dải tất cả các thẻ ngoại trừ thẻ neo và IMG?

  32. Bạn có thể dễ dàng bỏ qua độ nhạy của trường hợp /I và nhóm ():

    var noHtml = hasHtml.replace(/<[^>]+>/ig, '')
    

  33. Sử dụng jQuery jQuery (StringWithTags) .Text ()
    jQuery(stringWithTags).text()

  34. jQuery (StringWithTags) .Text (); Đó là những gì tôi muốn. Tanx…
    it is what i want. tanx…

  35. Không làm việc với angularjs.

  36. Mohammad Mustafa Ahmedzai

    Có lẽ đơn giản nhất có lẽ tôi tìm thấy trực tuyến. Cảm ơn một bó cho nó. Làm việc tốt!

  37. string.replace(/\n/g, "");
    string.replace(/[\t ]+\[\t ]+\<");
    string.replace(/\>[\t ]+$/g, ">");
    

  38. Không ai thấy giải pháp này ảnh hưởng rất lớn đến văn bản này:

    Rounded amounts < 3 are way easier for people to use in calculations, since they are so tiny than numbers that are >=3

    Trở thành: số lượng tròn = 3

    • Cái này thì tốt hơn; phpjs.org/funions/strip_tags/

  39. Cách an toàn để sử dụng DOM để tước HTML.

    function striptags(content) {
      var frag = document.createDocumentFragment();
      var innerEl = document.createElement('div');
      frag.appendChild(innerEl);
      innerEl.innerHTML = content;
      return frag.firstChild.innerText;
    }
    striptags('');
    

  40. Tôi đã tặc lưỡi một hàm cho phép giữ một số thẻ, tương tự như cách hoạt động của hàm PHP.

    Như với PHP, nó đi kèm với hai cảnh báo sau:

    Bởi vì dải_tags () không thực sự xác nhận HTML, các thẻ một phần hoặc bị hỏng có thể dẫn đến việc loại bỏ nhiều văn bản/dữ liệu hơn dự kiến.

    Chức năng này không sửa đổi bất kỳ thuộc tính nào trên các thẻ mà bạn cho phép sử dụng cho phép_tags, bao gồm các thuộc tính kiểu và onmouseOver mà người dùng tinh nghịch có thể lạm dụng khi đăng văn bản sẽ được hiển thị cho người dùng khác.

    /**
     * Native javascript function to emulate the PHP function strip_tags.
     * 
     * @param {string} str The original HTML string to filter.
     * @param {array|string} allowable_tags A tag name or array of tag
     * names to keep. Intergers, objects, and strings that don't follow the
     * standard tag format of a letter followed by numbers and letters will
     * be ignored. This means that invalid tags will also be removed.
     * @return {string} The filtered HTML string.
     */
    function strip_tags(str, allowable_tags) {
        allowable_tags = [].concat(allowable_tags);
        var keep = '';
        allowable_tags.forEach(function(tag) {
            if (('' + tag).match(/^[a-z][a-z0-9]+$/i))
                keep += (keep.length ? '|' : '') + tag;
        } );
        return str.replace(new RegExp(']+>', 'ig'), '');
    }
    

    Kiểm tra bổ sung đã được thực hiện để ngăn chặn các thẻ không hợp lệ bị xóa nếu có thể, bằng cách đảm bảo rằng việc mở mỗi thẻ bắt đầu bằng một tên thẻ tiềm năng; Nó không chiếm giá trị lớn hơn các ký hiệu trong các thuộc tính. Nhận xét sẽ được giữ lại nhưng có thể được xóa với một regex tương tự.

    '
    Hello
    ' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
    0

    • Hi!

      Tôi ghét phải làm phiền bạn, nhưng có vẻ như dòng cuối cùng của chức năng của bạn đã bị hỏng bằng cách nào đó - đó không phải là một Regex hợp lệ. Bất kỳ cơ hội bạn có thể sửa nó?

  41. Chào các cậu! Tôi hiện đang phải đối mặt với một vấn đề JavaScript với chức năng Regex / thay thế mà bạn đề cập ở đây. Tôi muốn mang một văn bản xung quanh một số thẻ HTML của nó.
    I would like to bring a text around some of its HTML tags.

    Đối với điều này, tôi sử dụng chức năng:

    '
    Hello
    ' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
    1

    Ở đây tất cả các thẻ bị xóa.

    Nhưng tôi muốn giữ các thẻ và các thẻ và tìm thấy hai chức năng riêng biệt này hoạt động cho tôi:

    '
    Hello
    ' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
    2

    Bạn có biết làm thế nào để kết hợp hai điều kiện trong một?

  42. Điều này không chỉ loại bỏ các ký tự vi phạm, mà còn cả phần còn lại của văn bản.

    • Những gì mà HTML bạn làm việc với?

  43. Tại sao bạn không sử dụng Element.TextContent?

  44. Chỉ là những gì tôi cần… cảm ơn

  45. 'If you are < 13 you cannot register' ==> 'If you are '
                ^^^^^^^^^^^^^^^^^^^^^^^^
    '
    Hello
    ' ==> ' 42">Hello' ^^^^^^^^^^^^^^^^^^ ^^^^^^
    2
    added a space after the chevron to allow for things like: “< heey >”

  46. Một mẹo khác: Sử dụng khả năng của Trình duyệt để xóa thẻ:

    '
    Hello
    ' ==> 'Hello' ^^^^^ ^^^^^^ 'Unterminated Tag 'Unterminated Tag ' ^^
    3

  47. Xin chào thưa ngài. Xin vui lòng tôi muốn biết nếu tôi có thể nhận được sự giúp đỡ từ bạn. Tôi có một bản gửi Frontend mà người dùng có thể chia sẻ bài viết của họ nhưng sẽ muốn xóa mọi liên kết trên biểu mẫu. Có cách nào để làm điều này chỉ cho bài đăng được gửi bởi người dùng không phải là quản trị viên không? Cảm ơn tôi đã có bộ bài viết Frontend và nó hoạt động đúng ngoại trừ những gì tôi đang tìm kiếm sự giúp đỡ.
    I have a frontend submission which users can share their article but will want to remove every link on the form.
    Is there a way to do this only for the post submitted by users who are not admin?
    Thanks
    I already have the frontend post set and it works properly except what I am seeking for help.

Để lại một câu trả lời

Làm cách nào để xóa thẻ khỏi chuỗi?

Các thẻ HTML có thể được xóa khỏi một chuỗi đã cho bằng cách sử dụng phương thức thay thế () của lớp chuỗi.Chúng ta có thể xóa các thẻ HTML khỏi một chuỗi đã cho bằng cách sử dụng biểu thức thông thường.Sau khi xóa các thẻ HTML khỏi một chuỗi, nó sẽ trả về một chuỗi dưới dạng văn bản thông thường.by using replaceAll() method of String class. We can remove the HTML tags from a given string by using a regular expression. After removing the HTML tags from a string, it will return a string as normal text.

JavaScript có thể loại bỏ HTML không?

Phương thức JavaScript Xóa Remove () được sử dụng để xóa phần tử HTML được chỉ định khỏi mô hình đối tượng tài liệu (DOM)..

Làm thế nào để bạn xóa một thẻ trong html?

Thẻ HTML.Thẻ trong HTML là viết tắt của xóa và được sử dụng để đánh dấu một phần văn bản đã bị xóa khỏi tài liệu.Văn bản bị xóa được hiển thị dưới dạng văn bản tấn công bởi các trình duyệt web mặc dù thuộc tính này có thể được thay đổi bằng thuộc tính trang trí văn bản CSS. Tag. The tag in HTML stands for delete and is used to mark a portion of text which has been deleted from the document. The deleted text is rendered as strike-through text by the web browsers although this property can be changed using CSS text-decoration property.

Làm thế nào loại bỏ thẻ HTML khỏi chuỗi trong React?

// Xóa thẻ HTML khỏi chuỗi, chỉ để lại hàm văn bản bên trong RemoveHtml (str) {var tmp = document.createelement ("div");tmp.innerhtml = str;Trả về TMP.TextContent ||TMP.removeHTML(str){ var tmp = document. createElement("DIV"); tmp. innerHTML = str; return tmp. textContent || tmp.