为什么我无法用Typescript替换换行符(Javascript)

问题描述:

我有一个字段,用户可以输入一些文本,这些文本将显示在页面上的另一个div中。它也被保存到数据库(MSSQL)。为什么我无法用Typescript替换换行符(Javascript)

当刷新页面时,保存的文本将被加载并且可以被编辑。一旦文本被编辑,div也将实时更新。为了让linebreaks工作,我做了一个快速换行方法,应该涵盖所有换行符的情况。

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 />"); 

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

这是我当前调试结果的屏幕截图。您可以清楚地看到,两个换行符中的第一个被换掉了,但不是第二个。我想明白为什么。
My debug result

我试图调试内容从控制台到记事本++复制到看看具体的角色,但它看起来像Notepadd ++,Windows或Chrome复制时更改数据。记事本+ +将显示两种\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函数替换仅仅是第一次出现。

+0

谢谢!你救了我的一天! – Mischa