繁体   English   中英

为什么我不能用Typescript(Javascript)替换换行符Char

[英]Why can't I replace a newline Char with Typescript (Javascript)

我有一个字段,用户可以在其中输入一些文本,这些文本将在页面上的另一个div中显示。 它还会保存到数据库(MSSQL)。

刷新页面时,将加载已保存的文本并可以对其进行编辑。 文本一旦被编辑,div也将实时更新。 为了使换行符正常工作,我制定了一种快速的换行符替换方法,该方法涵盖所有换行符情况。

let content = Tooltip.GetText(); // Tooltip is a Devexpress Memo Control
let content1 = content.replace("\r\n", "<br />");
let content2 = content1.replace("\n\r", "<br />");
let content3 = content2.replace("\n", "<br />");
let content4 = content3.replace("\r", "<br />");

虽然这适用于从数据库加载的换行符,但不适用于用户刚刚输入的换行符。 但是,换行符将在刷新页面后起作用。

这是我当前调试结果的屏幕截图。 您可以清楚地看到两个换行符中的第一个被替换了,但是第二个换行符没有被替换。 我想了解原因。
我的调试结果

我试图将调试内容从控制台复制到Notepad ++,以查看特定字符,但是看起来Notepadd ++,Windows或Chrome在复制时会更改数据。 Notepad ++将同时显示\\n\\r

试试这个:

let content1 = content.replace(/\r\n/g, "<br />");
let content2 = content1.replace(/\n\r/g, "<br />");
let content3 = content2.replace(/\n/g, "<br />");
let content4 = content3.replace(/\r/g, "<br />");

您的问题是,除非您使用全局标志传递正则表达式,否则.replace函数将仅替换第一个匹配项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM