项目场景:

后端接口返回字符串中存在连续性空格

例如:后端返回数据格式为:空 (此处包含多个连续空格) 格,前端展示:空 格


问题描述

开发过程中遇到的问题:后端接口返回数据库中的字符串中存在多个连续性空格,但是前端展示将多个空格自动转换为一个空格进行展示,导致复制查询时,数据库中无法查询到数据。
模糊搜索存在该数据


但是因为展示的问题,导致复制后搜索不到数据库中数据


原因分析:

html标签在浏览器中会将多个连续性空格合并为一个空格

例如:空( 多 个 空 格 )格会展示为空 格


解决方案:

使用CSS white-space 属性
由于我的需求是既要保留空格的个数,又要正常换行,所以用到了pre-wrap属性值。
white-space:pre-wrap

简答描述一下相关属性值:

描述
normal默认。空白会被浏览器忽略。
pre空白会被浏览器保留。其行为方式类似 HTML 中的<pre>标签。
nowrap文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
pre-wrap保留空白符序列,但是正常地进行换行。
pre-line合并空白符序列,但是保留换行符。
inherit规定应该从父元素继承 white-space 属性的值。

使用注意:

在使用该属性的时候不可以使用代码格式化,否则的话,格式化后的代码会因为代码的空格或者换行从而影响到前端数据的展示。

更多推荐

前端对于后端返回连续空格的展示问题