代码之家  ›  专栏  ›  技术社区  ›  vighnesh153

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

  •  0
  • vighnesh153  · 技术社区  · 7 年前

    当我尝试运行以下代码时,它不会替换&lt,&gt,&#34到它的等价字符

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

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

    我该怎么办?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Wiktor Zychla    7 年前

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

    否则就丢了。

    docs

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

    如果这不起作用,请尝试一个无替身版本的蜜蜂蜇伤: "<%- myTable %>"; (代替 "<%= myTable %>"; ).

        2
  •  1
  •   GerryLon    7 年前

    你应该注意到 标记和使用 myTable=myTable.replace 而不是 myTable.replace文件

    因为replace方法不会更改源字符串,请参阅: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

    var 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;/g,'<').replace(/&gt;/g, '>').replace(/&#34;/g, '"');
    
    console.log(myTable);