为了账号安全,请及时绑定邮箱和手机立即绑定

将 \r\n 替换为 < br /> 作为文本

将 \r\n 替换为 < br /> 作为文本

万千封印 2022-08-04 10:29:47
尝试用 < br/> 替换 \r\n 2 小时,但这似乎是不可能的。我不知道我在做什么!请帮忙!const text = '"Hello!\r\n\r\nThis is a dog!'const checkText = str=> {  const match = /\r|\n/.exec(text);  if (match) {    //return str.replace(/(?:\\[rn]|[\r\n]+)+/g, '<br/>');    return str.replace('/r/n', '<br/>');  }  return str;};checkText(text)
查看完整描述

4 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

只需执行以下操作:

text.replace(/\r\n/g, '<br/>');



查看完整回答
反对 回复 2022-08-04
?
倚天杖

TA贡献1828条经验 获得超3个赞

涵盖所有可能的新行字符组合。


String tmp = s.replaceAll("\r\n", "<br>"); // Windows

tmp = tmp.replaceAll("\r", "<br>");        // Old MAC

return tmp.replaceAll("\n", "<br>");       // Linux / UNIX


查看完整回答
反对 回复 2022-08-04
?
慕容708150

TA贡献1831条经验 获得超4个赞

您可以尝试:

(text+ '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1<br/>$2');


查看完整回答
反对 回复 2022-08-04
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

您的代码存在多个错误:

  1. String.prototype.replace仅替换字符串的第一个匹配项。您需要将正则表达式参数与标志一起使用来替换所有匹配项。/g

  2. 转义使用反斜杠,而不是正斜杠:使用 ,而不是 。\r\n/r/n

  3. checkText返回一个 ,但您的调用站点不对返回的字符串执行任何操作 - 它只是被删除。字符串在 JavaScript 中是不可变的。string

我不建议使用字符串来保存HTML,因为它可以(非常容易)导致HTML注入(包括-注入)攻击。<script>

相反,请执行下列操作之一:

  • 在数组中使用和 HTML 编码,并使用 .String.prototype.splitstringjoin"<br />"

  • 将字符串直接添加到文档中(不再使用),并为父元素提供 CSS 样式。.textContentinnerTextwhitespace: pre-wrap;


查看完整回答
反对 回复 2022-08-04
  • 4 回答
  • 0 关注
  • 421 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号