微信小程序支持ES6字符串拓展

本文深入探讨了JavaScript中字符串处理的最新特性,包括includes(), startsWith(), endsWith(), repeat(), codePointAt(), String.fromCodePoint(), 和normalize()等方法的使用场景及技巧,帮助开发者更高效地操作字符串。
摘要由CSDN通过智能技术生成

1、includes(), startsWith(), endsWith()

includes(n)检查字符串中是否存在指定的字符串,返回布尔值,n代表检索的起始位置,n可以不传

startsWith(n)判断字符串是否已某个字符串开头,返回布尔值,n代表检索的起始位置,n可以不传

endsWith(n)判断字符串是否以某个字符串结尾,返回布尔值,n代表检索的起始位置,n可以不传,这里要注意n的使用

let s = 'Hello world!';

s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

2、repeat(n)

返回一个新的字符串,表示将字符串重复n次

'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""

如果是小数,会被取整,小数点后被忽略

3、codePointAt

使用场景比较少,能支持4个字节存储的字符,js默认是给字符分配两个字节的存储大小,使用方法如下:

let s = '?a';
s.codePointAt(0)

该方法默认返回的是十进制的值,要返回其它进制的值可以使用toString方法转换,如下转为16进制值:

let s = '?a';
s.codePointAt(0).toString(16) // "20bb7"
s.codePointAt(2).toString(16) // "61"

这里要获取a的code值,索引要传2,使用不是很方便,可以用for...of方法遍历所有的code值:

let s = '?a';
for (let ch of s) {
  console.log(ch.codePointAt(0).toString(16));
}
// 20bb7
// 61

codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法:

function is32Bit(c) {
  return c.codePointAt(0) > 0xFFFF;
}
is32Bit("?") // true
is32Bit("a") // false

4、String.fromCodePoint()

与codePointAt()作用相反,将code值转为字符

String.fromCodePoint(0x20BB7)
// "?"
String.fromCodePoint(0x78, 0x1f680, 0x79) === 'x\uD83D\uDE80y'
// true

5、normalize(ios8/ios9不支持该方法)

统一字符表示,不常用

'\u01D1'.normalize() === '\u004F\u030C'.normalize()
// true

参考链接

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值