码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 前端页面根据后端返回的文本将换行符(“↵”)进行换行展示


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

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

  • 相关阅读:
    不同网段的IP怎么互通
    【ES6】阮一峰ES6学习(二)模板字符串、新增的字符串方法、函数扩展、rest参数、箭头函数
    [机缘参悟-60]:《兵者,诡道也》-1-开篇:“死“与“生“都是天道“
    关于Flask_request中的参数介绍
    【云原生 • Kubernetes】k8s功能特性、k8s集群架构介绍
    像你这么优秀的测试工程师,为什么连面试都过不了?
    final关键字、抽象类、接口
    日志审计设计-结合spring-aop实现
    Linux -- 正则表达式基础
    三大浏览器兼容性问题总结
  • 原文地址:https://blog.csdn.net/qq_52126119/article/details/133941850
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号