javascript - 使用 Google Sheets 将 HTML 编码为 HTML 特殊字符

标签 javascript html regex google-sheets

我正在尝试对单元格中的 HTML block 进行编码,以便 HTML 可以显示在用 <pre> 包裹的网页上标签。

所以

<div class="html"> 
    <html> 
    <head>
<title>Title</title>
</head> 
    <body>
    <p>Unrendred html</p>     </body> 
    </html> 
</div>

成为


<pre>
&lt;div class="html"&gt;
    &lt;html&gt;
    &lt;head&gt;&lt;title&gt;Title&lt;/title&gt;&lt;/head&gt;
    &lt;body&gt;
    &lt;p&gt;Unrendred html&lt;/p&gt;
    &lt;/body&gt;
    &lt;/html&gt;
&lt;/div&gt;
</pre>

现在我认为我已经通过找到 =ENCODEURL 破解了公式,但输出略有不同。

%26lt%3Bdiv%20class%3D%26quot%3Bhtml%26quot%3B%26gt%3B%20%26lt%3Bhtml%26gt%3B%20%26lt%3Bhead%26gt%3B%20%26lt%3Btitle%26gt%3BTitle%26lt%3B%2Ftitle%26gt%3B%20%26lt%3B%2Fhead%26gt%3B%20%26lt%3Bbody%26gt%3B%20%26lt%3Bp%26gt%3BUnrendred%20html%26lt%3B%2Fp%26gt%3B%20%26lt%3B%2Fbody%26gt%3B%20%26lt%3B%2Fhtml%26gt%3B%20%26lt%3B%2Fdiv%26gt%3B

CodePen显示了理想的输出以及如何在 HTML 中成功显示 HTML 代码。

我认为“编码”选项称为 HTML 特殊字符。我怎样才能在谷歌表格中得到这个?也许通过公式或正则表达式

最佳答案

我正在通过 JSON 访问我的 Google 电子表格单元格,并且我已经在其中添加了 HTML。

谷歌电子表格: https://docs.google.com/spreadsheets/d/17zfaoB56EfdSc9IzkJitSRi5wLGv-GJQwZaOPj5cZM0/edit#gid=0

Google 电子表格 JSON: https://spreadsheets.google.com/feeds/cells/17zfaoB56EfdSc9IzkJitSRi5wLGv-GJQwZaOPj5cZM0/1/public/full?alt=json

Codepen 演示:https://codepen.io/aystarz52/pen/ormamN?editors=1011

$(function(){
  var sheetUrl = 'https://spreadsheets.google.com/feeds/cells/17zfaoB56EfdSc9IzkJitSRi5wLGv-GJQwZaOPj5cZM0/1/public/full?alt=json';
  $.getJSON(sheetUrl, function(data){
    var entry = data.feed.entry;
    var htmlCode = []; // the leftmost column of the Google Sheets
  for (var i = 0; i < entry.length; i += 1){
      // entry[i].content.$t retrieves the content of each cell
      htmlCode.push(entry[i].content.$t);
    }
    var uri= escape_html(htmlCode);
    var res = escape(uri);
    var appendContents = document.getElementById("demo").textContent = uri; 
  })
});

function escape_html(str) {

 if ((str===null) || (str===''))
       return false;
 else
   str = str.toString();

  var map = {
    '<': '&lt;',
    '>': '&gt;',
    '"': '&#x00022;',
    "'": '&#039;',
  ";": '&#x0003B;'
  };

  return str.replace(/[<>"']/g, function(m) { return map[m]; });
}

这里是编码字符:https://dev.w3.org/html5/html-author/charref

关于javascript - 使用 Google Sheets 将 HTML 编码为 HTML 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56970944/

相关文章:

javascript - Cordova - 'touchmove' 事件不会立即触发

javascript - HTML 表格中的重叠行

python - 在单个语句中处理区分大小写和不区分大小写的正则表达式模式

regex - 如何在 VBA 正则表达式中模拟lookbehind?

javascript - 为什么以下文件扩展名正则表达式不匹配?

javascript - firebase 回调中无法识别异步函数

javascript - Node.js - 当 Nginx 反向代理提供服务时,Websocket 拒绝打开连接

javascript - 如何将具有背景的 <span> 定位到中心?

javascript - AngularJs 指令在点击时调用链接函数

javascript - 将变量从 Android 传递到在 WebView 中启动的 JavaScript