replace()未能按预期运行,试图替换JavaScript中的换行符(/ n / rn / r)

时间:2019-02-19 21:57:34

标签: javascript regex

我刚刚开始使用JavaScript,所以这可能只是我忽略的语法错误,也可能是正则表达式错误,但是代码源似乎已被人们接受。

我从this问题中得到了代码。

如果我传递字符串This is a string \n,它不会代替\n并输出到网页This is a string \n

我的代码如下:

<p id="commandOutput">Click run and it will output here</p>

<script type="text/javascript">

    var exampleSocket = new WebSocket("ws://localhost:8080/ws")

    var update = function(){
        exampleSocket.onmessage = function (event) {
            document.getElementById("commandOutput").innerHTML = event.data.toString().replace(/(?:\r\n|\r|\n)/g, "<br/>");
        }
    };

    window.setTimeout(update);

</script>

我的问题涉及以下行:

 document.getElementById("commandOutput").innerHTML = event.data.toString().replace(/(?:\r\n|\r|\n)/g, "<br/>");

1 个答案:

答案 0 :(得分:1)

@Pointy提到的问题是:

  

正则表达式对回车符和换行符的特殊控制字符进行操作,而不对文字\n进行操作

如@ChrisG所述,要解决此问题,您可以:

  

使用\\n屏蔽反斜杠