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 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 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?

    /[]+]>]/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 ]+\[\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['alert["xss attack!"]'];
    

  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 Hello' ==> ' 42">Hello' ^^^^^^^^^^^^^^^^^^ ^^^^^^
    2
    added a space after the chevron to allow for things like: “< heey >”

  41. 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

    Bài Viết Liên Quan

    Chủ Đề