簡體   English   中英

轉義小於和大於 HTML

[英]Escape less than and greater than in HTML

content = '5<x<div></div>'

基本上我正在尋找一個正則表達式,它將使上面的字符串變成5&lt;x<div></div>

5x<div></div>仍然是5x<div></div> 我只是想逃避未封閉的 html 標簽

如果有這樣的庫,那么我會很樂意使用它,只要它符合我試圖逃避未封閉 html 標簽的主要目標

  1. 用符號 + 唯一值重寫每個打開的標記字符“<”...在這種情況下為“,,#*&,,”
  2. 以唯一值拆分字符串
  3. “replaceString ()” function 檢查傳遞的值是否真的是一個標簽……字符串中是否同時存在“<”和“>”字符。 如果不存在,則用“& lt;”重寫該字符。
  4. 對符號“>”重復整個過程

這不是這個任務最漂亮的解決方案,但它確實有效。

 var str = '5<x<div>s>7</div>'; for (var i = 0; i < 2; i++) { if (i === 0) { var str2 = str.replace(/</gi, ",,#*&,,<"); var spl = str2.split(",,#*&,,"); } else { var str2 = str.replace(/>/gi, ">,,#*&,,"); var spl = str2.split(",,#*&,,"); } replaceString(spl); } function replaceString(spl) { for (let i = 0; i < spl.length; i++) { if (spl[i].indexOf('<') > -1 && spl[i].indexOf('>') > -1) { //....... } else { if (spl[i].indexOf('<') > -1) { spl[i] = spl[i].replace(/</gi, "&lt;"); } else if (spl[i].indexOf('>') > -1) { spl[i] = spl[i].replace(/>/gi, "&gt;"); } } } str = spl.join(''); } console.log(str);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM