JavaScript将\n替换为

44 浏览
0 Comments

JavaScript将\n替换为

var messagetoSend = $.trim(document.getElementById("msgText").value);
messagetoSend = messagetoSend.replace("\n", "").replace("\n", "").replace("\n", "");
alert(messagetoSend);

给定输入:

Line 1
Line 2
Line 3

这将弹出:

Line 1
Line 2
Line 3

当我期望它弹出:

Line 1Line 2Line 3

0
0 Comments

出现的原因:

问题的出现是因为之前的解决方法在每一行的末尾都替换了最后一个字符。

解决方法:

为了解决这个问题,可以使用下面的代码来处理换行符的替换,这样既能处理"\n"换行符,也能处理"\r\n"换行符。

str.replace(new RegExp('\r?\n','g'), '<br />');

这个解决方法可以完整地解决问题,因为它能够正确地替换换行符,而之前的解决方法会在每一行的末尾替换最后一个字符。

需要注意的是,这个解决方法并不能处理只有"\r"换行符的情况,需要同时包含"\n"和"\r"才能正确替换。

0
0 Comments

问题:如何使用JavaScript将换行符`\n`替换为`
`?

原因:需要使用`/g`进行全局匹配。

解决方法:使用正则表达式`replace(/\n/g, "<br />")`进行替换。

示例代码:

var messagetoSend = document.getElementById('x').value.replace(/\n/g, "<br />");
console.log(messagetoSend);

示例HTML代码:


更新:对于包含转义换行符`\r\n`的文本,需要对斜杠进行转义,使用正则表达式`replace(/\\r\\n/g, "<br />")`进行替换。

注意:所有浏览器在渲染字符串时都会忽略`\r`。

其他问题和解答:

- 对于某些访问者提供的包含转义换行符的文本,需要对斜杠进行转义,使用正则表达式`replace(/\\r\\n/g, "<br />")`进行替换。

- 有人尝试使用`replace(/\\n/g,"<br />")`,但似乎不起作用。

- 单引号打断了正则表达式,需要使用双引号或转义字符来修复。

- 在.NET ASPX中使用jQuery时遇到相同的问题,使用`replace(/\\r\\n/g, "<br />")`解决。

- 服务器上可能已经对换行符进行了转义处理。

通过使用JavaScript的`replace`方法和正则表达式,我们可以将`\n`替换为`
`,从而在网页上正确显示换行符。

0
0 Comments

自动处理回车换行符,但在某些情况下,可能需要手动将换行符替换为HTML的换行标签。
使用JavaScript的replace()方法可以实现这一需求。原始代码中,使用正则表达式/\n/g来匹配并替换所有的换行符为<br />。然而,如果换行符是由于Windows编码导致的,还需要替换回车符。通过使用正则表达式/\r\n/g,可以匹配并替换所有的回车换行符为<br />。
但是,有用户报告这种方法不起作用,无法替换任何内容。猜测可能是因为换行符是Windows格式的。因此,更新了代码,同时也尝试将回车符替换掉。
需要注意的是,换行符是\n而不是\\n,而\r可以忽略不计,因为浏览器会自动处理它们。

0