首页 > 解决方案 > .replace() 在嵌入式 javascript 中不起作用

问题描述

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

<% 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;"

我该怎么办?

标签: javascripthtmlnode.jsreplaceejs

解决方案


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

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

否则它只是丢失了。

文档

replace() 方法在字符串中搜索指定值或正则表达式,并返回替换指定值的新字符串。

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


推荐阅读