【ES6】字符串新增方法

news/2024/7/10 22:59:40 标签: es6, 前端, ecmascript

目录

1.String.fromCharCode()

2.String.raw()

3.实例方法:codePointAt()

4.实例方法:normalize()

5.实例方法:includes()、startWith()、endWith()

6.实例方法:padStart()、padEnd()

7.实例方法:repeat()

8.实例方法:at()

9.实例方法:matchAll()

10.实例方法:replaceAll()

11.实例方法:trimStart()、trimEnd()


1.String.fromCharCode()

该方法用于从 Unicode 码点返回对应字符。

ES6的String.fromCharCode()方法可以识别大于0xFFFF的字符,弥补了ES5中String.fromCharCode()方法的不足。

2.String.raw()

该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。如果原字符串的斜杠已经转义,那么String.raw()会进行再次转义。例:

String.raw`a\\n`
// 返回 "a\\\\n"

String.raw`a\\n` === "a\\\\n" 
// true

3.实例方法:codePointAt()

作用与上面String.fromCharCode()方法相反,能够正确处理 4 个字节储存的字符,返回一个字符的码点。例:

let s = '𠮷a';

s.codePointAt(0) // 134071
s.codePointAt(1) // 57271

s.codePointAt(2) // 97

如上代码,codePointAt()方法会正确返回 32 位的 UTF-16 字符的码点。对于那些两个字节储存的常规字符,它的返回结果与charCodeAt()方法相同。 

注:fromCodePoint方法定义在String对象上,而codePointAt方法定义在字符串的实例对象上

4.实例方法:normalize()

用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。

normalize方法可以接受一个参数来指定normalize的方式,参数的四个可选值如下。

  • NFC,默认参数,表示“标准等价合成”(Normalization Form Canonical Composition),返回多个简单字符的合成字符。所谓“标准等价”指的是视觉和语义上的等价。
  • NFD,表示“标准等价分解”(Normalization Form Canonical Decomposition),即在标准等价的前提下,返回合成字符分解的多个简单字符。
  • NFKC,表示“兼容等价合成”(Normalization Form Compatibility Composition),返回合成字符。所谓“兼容等价”指的是语义上存在等价,但视觉上不等价,比如“囍”和“喜喜”。(这只是用来举例,normalize方法不能识别中文。)
  • NFKD,表示“兼容等价分解”(Normalization Form Compatibility Decomposition),即在兼容等价的前提下,返回合成字符分解的多个简单字符。
'\u004F\u030C'.normalize('NFC').length // 1
'\u004F\u030C'.normalize('NFD').length // 2

上面代码表示,NFC参数返回字符的合成形式,NFD参数返回字符的分解形式。

不过,normalize方法目前不能识别三个或三个以上字符的合成。这种情况下,还是只能使用正则表达式,通过 Unicode 编号区间判断。

5.实例方法:includes()、startWith()、endWith()

  • includes():返回布尔值,表示是否找到了参数字符串。
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

这三个方法都支持第二个参数,表示开始搜索的位置。 

6.实例方法:padStart()、padEnd()

padStart()用于头部补全,padEnd()用于尾部补全。例:

'c'.padStart(5, 'ab') // 'ababc'
'c'.padStart(4, 'ab') // 'abac'

'c'.padEnd(5, 'ab') // 'cabab'
'c'.padEnd(4, 'ab') // 'caba'

r如上代码中,padStart()padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。

如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串。

如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。例:

'abc'.padStart(10, '123456789')
// '1234567abc'

如果省略第二个参数,默认使用空格补全长度。

7.实例方法:repeat()

返回一个新字符串,表示将原字符串重复n次。例:

'a'.repeat(2.9) // "aa"

 如上代码,不是整数的情况下会自动取整

8.实例方法:at()

接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置)。

const str = 'hello';
str.at(1) // "e"
str.at(-1) // "o"

如果参数位置超出了字符串范围,at()返回undefined

9.实例方法:matchAll()

matchAll()方法返回一个正则表达式在当前字符串的所有匹配

10.实例方法:replaceAll()

可以一次性替换所有匹配。它的用法与replace()相同,返回一个新字符串,不会改变原字符串。

replaceAll()的第二个参数replacement是一个字符串,表示替换的文本,其中可以使用一些特殊字符串。

  • $&:匹配的字符串。
  • $` :匹配结果前面的文本。
  • $':匹配结果后面的文本。
  • $n:匹配成功的第n组内容,n是从1开始的自然数。这个参数生效的前提是,第一个参数必须是正则表达式。
  • $$:指代美元符号$

11.实例方法:trimStart()、trimEnd()

trimStart()消除字符串头部的空格,它们的行为与trim()一致,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。 

除了空格键,这两个方法对字符串头部(或尾部)的 tab 键、换行符等不可见的空白符号也有效。 


http://www.niftyadmin.cn/n/5444249.html

相关文章

用tp6写的简单的eml的登录和curd

项目地址&#xff1a; 企业管理eml: 这是一个简单的eml (gitee.com) 1.登录和主页显示 1.1 登录功能逻辑图 1.2 控制器 app/controller/index.php php think make:validate LoginValidate <?php namespace app\controller;use app\BaseController; use app\model\User; …

【CVTE 一面凉经Ⅰ】循环依赖如何解决

目录 一.&#x1f981; 开始前的废话二. &#x1f981; 什么是循环依赖&#xff1f;三. &#x1f981;Spring 容器解决循环依赖的原理是什么?五. &#x1f981; 三级缓存解决循环依赖的原理六. &#x1f981; 由有参构造方法注入属性的循环依赖如何解决&#xff1f;七.&#x…

探索Java世界的奇妙工具——运算符与表达式运算符

开篇 想像一下我们在玩一款积木游戏&#xff0c;每一块积木都有不同的作用&#xff0c;有的负责连接&#xff0c;有的负责计算&#xff0c;还有的负责做决定。在Java编程中&#xff0c;我们也有这样一些“积木”——那就是运算符和表达式。它们帮助我们将数字和变量拼接起来&am…

【深度学习】基于机器学习的无机钙钛矿材料形成能预测,预测形成能,神经网络,回归问题

文章目录 任务分析数据处理处理离散数值处理缺失值处理不同范围的数据其他注意事项 我们的数据处理模型训练网页web代码、指导 任务分析 简单来说&#xff0c;就是一行就是一个样本&#xff0c;要用绿色的9个数值&#xff0c;预测出红色的那1个数值。 数据处理 在进行深度数…

Mysql与MyBatis

1 Sql语句 增删改查 1.1 建表 -- cmd展示数据库 show databases ; -- cmd登录数据库 mysql localhost -u root -p-- auto_increment 自动增长&#xff0c;每添加一个表项id自动增1 -- char定长字符串 0-255&#xff0c;不足十个字符按十个字符算&#xff0c; varchar变长字符串…

晶体管静态参数测试仪系统 能测 IGBT. Mosfet. Diode. BJT......

晶体管静态参数测试仪系统能测试很多电子元器件的静态直流参数&#xff08;如击穿电压V(BR)CES/V(BR)DSs、漏电流ICEs/lGEs/IGSs/lDSs、阈值电压/VGE(th)、开启电压/VCE(on)、跨导/Gfe/Gfs、压降/Vf、导通内阻Rds(on)&#xff09;。 测试种类覆盖 7 大类别26分类&#xff0c;包…

淘宝1688京东...按图搜索商品数据采集,item_search_img-按图搜索商品(拍立淘) API 返回值说明

按图搜索商品数据采集是一个复杂的过程&#xff0c;涉及多个步骤和工具。以下是一些常见的方法和工具&#xff0c;用于在淘宝、1688、京东等电商平台上进行按图搜索商品数据采集&#xff1a; 请求示例&#xff0c;API接口接入Anzexi58 一、方法 爬虫技术&#xff1a;使用编程…

Qt pro项目文件属性

一.Qt pro项目文件属性介绍 Qt项目的.pro文件是项目管理文件&#xff0c;用于记录项目设置和组织管理项目包含的文件。以下是一些主要属性及其介绍&#xff1a; QT: 指定项目使用的Qt模块。例如&#xff0c;QT core gui表示项目中加入core和gui模块。如果使用到数据库操作&…