详解Vue如何将多个空格被合并显示成一个空格

教程下载地址: 网赚博客https://www.piaodoo.com/创业项目排行榜前十名https://www.piaodoo.com/


现象

最近在Vue2项目开发中遇到个奇怪的现象,用户往数据库存了中间有四个空格的数据,数据库存储正常,接口返回的数据也是带四个空格没问题,但页面展示只有一个空格。

原因

在HTML/Vue中,多个连续的空格会合并为一个空格。

解决方案

1.插值表达式 + 正则

<template>
  <span>{{ space1 }}</span> 
  <span>{{ space2} }</span>
</template>

<script>
export default {
data() {
//正确写法
space1: ‘这是 空格’.replace(/\s/g, ‘\xa0’),//页面显示效果:这是 空格
//错误写法
space2: ‘这是 空格’.replace(/\s/g, ‘&nbsp;’),//页面显示效果:这是&nbsp;&nbsp;&nbsp;空格
}
}
</script>

在Vue2中,如果使用插值表达,则需使用\xa0来表示空格,如果直接使用&nbsp;来表示空格,它不会显示为空格,而是会被当成字符实体解析。

2.v-html指令 + 正则

<template>
  <span v-html="space1">{{ space1 }}</span> 
  <span v-html="space2">{{ space2} }</span>
</template>

<script>
export default {
data() {
//正确写法1
space1: ‘这是 空格’.replace(/\s/g, ‘\xa0’),//页面显示效果:这是 空格
//正确写法2
space2: ‘这是 空格’.replace(/\s/g, ‘&nbsp;’),//页面显示效果:这是 空格
}
}
</script>

在Vue2中,如果使用v-html指令方式,则用\xa0&nbsp;来表示空格都可以正常显示。

3.v-html指令/插值表达式 + CSS

如果不对空格进行转义,在v-html指令/插值表达式模式下直接给元素添加如下样式也能实现想要的效果。

<template>
  <span style="white-space:pre;" v-html="'这是   空格'"></span> 
</template>

其中,white-space:pre;是保留所有空白或换行符(回车键),可以实现原样输出。

番外

在Vue2中,如果在模板标签中直接使用&nbsp;作为空格,则在 compile 的过程中会被转换成一个空格。而直接使用\xa0来表示空格,则会被当成字符实体解析。

<template>
  <!-- 页面显示效果:这是 空格 -->
  <span>这是&nbsp;&nbsp;&nbsp;空格'</span>
  <!-- 页面显示效果:这是\xa0\xa0\xa0 空格 -->
  <span>这是\xa0\xa0\xa0空格'</span>
</template>

HTML提供的几种空格实体

HTML提供的几种空格实体(space entity),它们拥有不同的宽度。非断行空格( )是常规空格的宽度,可运行于所有主流浏览器。其他几种空格(&ensp; &emsp; &thinsp; &zwnj;&zwj;)在不同浏览器中宽度各异。

&nbsp;

它叫不换行空格,全称No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能只接触了 ,它是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加,该空格占据宽度受字体影响明显而强烈。

&ensp;

它叫半角空格,全称是En Space,en是字体排印学的计量单位,为em宽度的一半。根据定义,它等同于字体度的一半(如16px字体中就是8px)。名义上是小写字母n的宽度。此空格传承空格家族一贯的特性:透明的,此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。

&emsp;

它叫角空格,全称是Em Space,em是字体排印学的计量单位,相当于当前指定的点数。例如,1 em在16px的字体中就是16px。此空格也传承空格家族一贯的特性:透明的,此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。

&thinsp;

它叫窄空格,全称是Thin Space。我们不妨称之为瘦弱空格,就是该空格长得比较瘦弱,身体单薄,占据的宽度比较小。它是em之六分之一宽。

&zwnj;

它叫零宽不连字,全称是Zero Width Non Joiner,简称ZWNJ,是一个不打印字符,放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。Unicode中的零宽不连字字符映射为U+200C。

&zwj;

它叫零宽连字,全称是Zero Width Joiner,简称ZWJ,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。零宽连字符的Unicode码位是U+200D。

此外,浏览器还会把以下字符当作空白进行解析:空格(&#x0020;)、制表位(&#x0009;)、换行(&#x000A;)和回车(&#x000D;)还有(&#12288;)等等。

Js中的空格

1.String.fromCharCode(32)

2.\xa0:属于latin(ISO/IEC_8859-1,拉丁字母)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。

3.\u0020 :属于Unicode字符,用法和\xa0一样

4.\x20 :标准键盘码值表-十六进制。

5.%20 :对URI 进行解码的样式,需要用到decodeURIComponent。如decodeURIComponent('%20')后会显示1个空格。

6.\t: 这种相当于按了tab键,一个相当于4个空格。

到此这篇关于详解Vue如何将多个空格被合并显示成一个空格的文章就介绍到这了,更多相关Vue合并多个空格内容请搜索网赚博客https://www.piaodoo.com/以前的文章或继续浏览下面的相关文章希望大家以后多多支持网赚博客https://www.piaodoo.com/!

                        友情连接:  

茂名一技http://www.szsyby.net/


茂名一技http://www.enechn.com/


美文集http://www.tpyjn.cn/


手游排行前十名http://www.bjkhrx.com/


蔚来汽车http://www.weilaiqiche.cn/

  • 13
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值