我刚刚开始使用 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/