Vue 进阶(五十八):ES 字符串操作:遍历、比较、截取、补全...

一、字符串遍历器接口
上面代码中,字符串 text 只有一个字符,但是for循环会认为它包含两个字符(都不可打印),而for...of循环会正确识别出这一个字符。
codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。
二、字符串合成比较法 normalize()
上面代码表示,JavaScript 将合成字符视为两个字符,导致两种表示方法不相等。
ES6 提供字符串实例的normalize()方法,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。
三、判断字符串是否包含另一个字符串
这三个方法都支持第二个参数,表示开始搜索的位置。
上面代码表示,使用第二个参数 n 时,endsWith的行为与其他两个方法有所不同。它针对前 n 个字符,而其他两个方法针对从第 n 个位置直到字符串结束。
四、字符串重复
repeat方法返回一个新字符串,表示将原字符串重复 n 次。
五、字符串补全
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
padStart常见用途是为数值补全指定位数。下面代码生成 10 位数值字符串。
另一个用途是提示字符串格式。
六、字符串截取
6.1 substring()
用法:
substring(start,end)用数学表达式表达区间的话就是截取[start,end);substring(start)没有 end 相当于[start,最后一个字符];
6.2 slice()
slice用法和substring的用法基本一样,只是区别在于:
slice(start,end)->start不能大于end,否则返回空字符串;slice可以接受参数是负数,如果是负数的话,规则将按照:字符串的长度和赋值相加,替换掉这个值。举例如下:
七、 截取指定位置和指定长度的字符串
用法:
substr(start,length)-> 截取的字符串区间为:[start,start+length)->从start开始,算上start数length个字符串;substr(start)-> 截取的字符串区间为:[start,最后一个字符]
indexOf(char,index) 和 lastIndexOf(char,index)
indexOf是从左往右搜索,而lastIndexOf是从右往左搜索; 它们的返回值都是搜到 char 所在的位置序号,如果没搜到,返回-1;如果index为负数,那么在indexOf和lastIndexOf中,-1 代表最后一个字符。
char:为要查找的那个字符;index:是从哪个字符的位置序号开始找(没有则在indexOf中是最左边的字符,在lastIndexOf中是最右边的字符);
charAt(index) 和 charCodeAt(index) 和at(index) (es6 属性)
charAt(index)返回index位置的字符;charCodeAt(index)返回index位置的字符Unicode码;charAt(index)不能识别大于0xFFFF的字符,这时候可以用at()来识别;
八、数组转字符串
九、字符串转数组
十、拓展阅读
版权声明: 本文为 InfoQ 作者【华强】的原创文章。
原文链接:【http://xie.infoq.cn/article/5b30e61b1d3c2705826db7b52】。文章转载请联系作者。











评论