Javascript替换字符串中的\ n,但在替换时忽略任何具有\\的单词

时间:2018-02-20 16:25:57

标签: javascript html json

我有一个字符串"是\no↵abc"作为HTML文本区域中的输入。 在执行JSON.stringify时,它返回我" yes \ no \ nabc"。 现在我需要在HTML格式的textarea中显示相同的内容。替换" \ n"我得到JSON.stringify(Stringify将converts转换为\ n)我使用了以下正则表达式str2.replace(/ \ n / g," \ n")。 现在我该如何逃避\我正在获得。

我已将代码附加到

下面



    function myFunction() {
      var str = document.getElementById("para1").value
      var str2 = JSON.stringify(str);
    	document.getElementById("para").innerText = "Stringified text \n" +str2;
    	var res = str2.replace(/\\n/g, "\n");
    	document.getElementById("para2").innerText = "Replaced text \n" + res;
    	
    }

 <html>
    <body>
    Click the button</p>
    <p id="demo">Demo!</p>
    <textarea id = "para1">
    </textarea>
    <textarea id = "para">
    </textarea>
    <textarea id = "para2">
    </textarea>
    <textarea id = "para4">
    </textarea>
    Click
    <button onclick="myFunction()">Try it</button>
    

    </body>
    </html>
&#13;
&#13;
&#13;

文本区域的输入应为: 是\没有

ABC

2 个答案:

答案 0 :(得分:0)

要达到预期效果,请使用以下选项

var res = str2.replace(/\\na/g, "\n a");

https://codepen.io/nagasai/pen/gvedQY

答案 1 :(得分:0)

它非常具体到你想要的东西,并且在其他情况下可能会有破坏的风险,但在这种情况下会照顾你想要的东西。

&#13;
&#13;
    function myFunction() {
      var str = document.getElementById("para1").value
      var str2 = JSON.stringify(str);
    	document.getElementById("para").innerText = "Stringified text \n" +str2;
    	var res = str2.replace(/(\\\\)/g, "\\ ");
        var res = res.replace(/\\n/g, "\n");
        var res = res.replace(/\\ /g, "\\");
    	document.getElementById("para2").innerText = "Replaced text \n" + res;
    	
    }
&#13;
 <html>
    <body>
    Click the button</p>
    <p id="demo">Demo!</p>
    <textarea id = "para1">
    </textarea>
    <textarea id = "para">
    </textarea>
    <textarea id = "para2">
    </textarea>
    <textarea id = "para4">
    </textarea>
    Click
    <button onclick="myFunction()">Try it</button>
    

    </body>
    </html>
&#13;
&#13;
&#13;

如果有效,请告诉我。干杯!