• 前端页面根据后端返回的文本将换行符(“↵”)进行换行展示


    有时我们会遇到这种情况,后端传递了一大段包含了回车符的文本内容,前端展示的时候所有文字堆在一起,没有换行展示。

    以下方法中content为后端返回的文本内容

    方法一:

    “↵”符号在html中会识别别为\r,\n等转义字符,所以我们可以使用\r\n去替换(.replace(/(\r\n|\n|\r)/gm, ’< br />')

    <div v-html="content.replace(/(\r\n|\n|\r)/gm, '
    ')"
    >
    div>

    方法二:

    使用

    标签, 它会自动识别和处理后台返回的换行符号

    <pre>{{content }}pre>

    方法三:

    white-space样式

    <div class="logDetail">{{ content }}div>

    css样式

    1. .logDetail {
    2. white-space: pre-wrap;
    3. /* white-space:pre-line; */
    4. }

    white-space CSS 属性是用来设置如何处理元素中的 空白。

    • pre-wrap:连续的空白符会被保留。在遇到换行符或者< br >元素,或者需要为了填充「行框盒子(line boxes)」时才会换行。

    • pre-line连续的空白符会被合并。在遇到换行符或者< br >元素,或者需要为了填充「行框盒子(line boxes)」时会换行。

    方法四:

    (下面是在Vue中实现的,所有框架思想一样)

    1. <template>
    2. <div v-html="contentFormat">div>
    3. template>
    4. <script>
    5. export default {
    6. data(){
    7. return{
    8. //存储后端返回的,文本
    9. content:"",
    10. }
    11. },
    12. //计算属性,与data同级
    13. computed: {
    14. contentFormat() {
    15. //this.content存储后端传回来的文本数据,就是要对这个数据进行处理
    16. let arr = this.content.split("");
    17. return arr
    18. .map((item) => {
    19. return item === "\n" ? "
      "
      : item;
    20. })
    21. .join("");
    22. },
    23. },
    24. methods:{
    25. getData(){
    26. ....
    27. this.content=xxx;
    28. }
    29. }
    30. }
    31. script>

    思想:将文本字符串转化为数组,然后将数组中“\n”换成浏览器正常解析的换行标签
    即可。(后端传回来的“↵”就是\r\n),上面同样可以使用正则表达式来将字符串的换行符转换为< br >,那么就不用转换为数组了。

  • 相关阅读:
    游戏联运和游戏代理的区别
    Java 多线程原理详解
    系统架构设计师(第二版)学习笔记----信息安全系统及信息安全技术
    Django--重定向redirect
    Leetcode739. 每日温度
    MySQL -- 库和表的操作
    Oracle SQL基础
    【漏洞分析】Li.Fi攻击事件分析:缺乏关键参数检查的钻石协议
    Node.js入门指南(一)
    spy最新安装教程!!青龙+spy,东东豆豆多)
  • 原文地址:https://blog.csdn.net/qq_52126119/article/details/133941850