javascript - 在 JavaScript 中,replace() 尝试替换换行符 (/n/rn/r) 时未按预期运行

标签 javascript regex

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

我从 this 获取了我的代码问题。

如果我传递字符串这是一个字符串\n它不会替换\n并输出到网页这是一个字符串\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/>");

最佳答案

正如@Pointy提到的,问题是:

The regular expression operates on the special control characters for carriage return and newline, not on literal \n

正如 @ChrisG 提到的,要解决这个问题,您可以:

Use \\n to mask the backslash

关于javascript - 在 JavaScript 中,replace() 尝试替换换行符 (/n/rn/r) 时未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54775572/

相关文章:

javascript - 在 Javascript 中检查 2 次之间的时间

javascript - 静态定位的控制栏,例如 Gmail for iPhone Web 应用程序?

python - Vim 语法高亮 : highlight `self` python keyword with regex

regex - 查找管道字符并替换为换行符

javascript - Chrome 分机 : Javascript interrogate URL string for hostname

javascript - 如何找到字符串中日期和时间的第一个索引

javascript - 将一个单词中的所有字母替换为js中的*

javascript - 将数学字符串转换为 JavaScript 表达式

regex - 如何提取从第 n 次出现的所述字符(从字符串末尾开始)开始的 "_"个字符之间的所有内容?

javascript - javascript 最好的 2D 图形库是什么?