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


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

    以下方法中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 >,那么就不用转换为数组了。

  • 相关阅读:
    挑战拯救痴心“舔狗”,我和大模型都尽力了
    WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)
    OAK-PoE系列M8接口使用说明
    OC RSA加密解密
    Cruise 从零搭建模型
    React-Hooks怎样封装防抖和节流-面试真题
    零代码编程:用ChatGPT批量下载podomatic播客RSS页面音频
    基于SSM的新闻管理系统
    个人项目中用到的Flume 各组件,以及Put 事务和Take 事务介绍
    帆软填报报表实现日期自动生成总结
  • 原文地址:https://blog.csdn.net/qq_52126119/article/details/133941850