javascript - .replace() 在嵌入式 javascript 中不起作用

标签 javascript html node.js replace ejs

当我尝试运行以下代码时,它不会将 <、>、" 替换为其等效字符

<% if(typeof myTable !== 'undefined'){ %>
        <% myTable = myTable.replace('&lt','<').replace('&gt', '>').replace('&#34', '"') %>
        <script>
            localStorage['text'] += "<%= myTable %>";
        </script>
        <% myTable = undefined; %>
<% } %>

当我检查 myTable 的值(替换为 ejs 的 plceholder 标记)时,它仍然具有原始形式的这些字符。

myTable = "&lt;table class=&#34;table table-bordered table-hover&#34;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th class=&#34;col&#34;&gt;&lt;p contenteditable=&#34;true&#34;&gt;Head&lt;/p&gt;&lt;/th&gt;&lt;th class=&#34;col&#34;&gt;&lt;p contenteditable=&#34;true&#34;&gt;Head&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p contenteditable=&#34;true&#34;&gt;Null&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p contenteditable=&#34;true&#34;&gt;Null&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p contenteditable=&#34;true&#34;&gt;Null&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p contenteditable=&#34;true&#34;&gt;Null&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;"

我应该做什么?

最佳答案

我会尝试存储替换字符串的值

<% myTable = myTable.replace('&lt','<').replace('&gt', '>').replace('&#34', '"') %>

否则就丢失了。

来自docs

The replace() method searches a string for a specified value, or a regular expression, and returns a new string where the specified values are replaced.

如果这不起作用,请尝试未转义版本的蜂蜇:"<%- myTable %>"; (而不是 "<%= myTable %>"; )。

关于javascript - .replace() 在嵌入式 javascript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52981682/

相关文章:

javascript - 如何用angular js ng-hide隐藏一个div

javascript - 无需键即可迭代 Json 数组

node.js - Nginx 和 Node.js - 充分利用服务器

javascript - 如何将数据从 module.export 函数传递到对象

html - 容器内的 CSS 模糊过滤器,无需剪裁

node.js - 获取包含特定文件nodejs的所有第一个子文件夹

javascript - jQuery - 获取字符串的一部分

javascript - JS .show .hide方向

javascript - 从下拉列表中选择值时触发 AJAX

javascript - 是什么导致了灰色线?