为什么我无法用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 />");
虽然这将适用于从数据库加载的换行符,但它不适用于用户刚刚输入的换行符。但是,换行将在刷新页面后生效。
这是我当前调试结果的屏幕截图。您可以清楚地看到,两个换行符中的第一个被换掉了,但不是第二个。我想明白为什么。
我试图调试内容从控制台到记事本++复制到看看具体的角色,但它看起来像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
函数替换仅仅是第一次出现。
谢谢!你救了我的一天! – Mischa