ECMAScript 6(6)字符串(包含、自我复制、补全)

includes(), startsWith(), endsWith()

原型:

str.includes(searchString[, position])
str.startsWith(searchString[, position])
str.endsWith(searchString[, position])

解释:

1. 简单来说,在默认情况下(只有第一个参数):
    str.includes(searchString)    用于检测某个字符串(str)中是否包含参数字符串(searchString);
    str.startsWith(searchString)    用于检测某个字符串(str)是否以参数字符串(searchString)为开头;
    str.endsWith(searchString)    用于检测某个字符串(str)是否以参数字符串(searchString)为结尾;
    请参照【示例代码一】

2. 关于第二个参数,用于限定寻找范围(只搜索字符串中一部分)
    str.includes(searchString, pos)    表示寻找范围是(pos, str.length-1),注意,str的第一个字符pos值为0
    str.startsWith(searchString, pos)    表示寻找范围是(pos, str.length-1),即编号为pos的字符视为开始字符
    str.endsWith(searchString, pos)    表示寻找范围是前pos个字符,即编号为(pos - 1)的字符视为最后一个字符
    请参照【示例代码二】

【示例代码一】只有第一个参数

"abc".includes("bc");   //true
"abc".includes("cb");   //false
"abc".startsWith("ab"); //true
"abc".startsWith("bc"); //false
"abc".endsWith("bc");   //true
"abc".endsWith("cb");   //false

【示例代码二】包含位置参数

"abc".includes("b", 1);   //true, bc中显然包含b
"abc".includes("b", 2);   //false, c中不包含b
"abc".startsWith("ab", 1); //false, bc不是以ab为开头的
"abc".startsWith("bc", 1); //true, bc是以bc开头的
"abc".endsWith("bc", 2);   //false, ab的结尾不是bc
"abc".endsWith("ab", 2);   //true, ab的结尾是ab3

repeat()

原型:

str.repeat(count)

解释:

1. 简单来说,就是将str这个字符串重复count次并返回;
2. 参数类型要求是number类型(或被隐式转换为number类型);
3. 参数的值要求是非负整数次(包括0),浮点数会被取整(舍去小数部分);
4. 非法参数会抛出异常;
5. 参数

示例代码:

var str = "abc";
str.repeat(0);     //""
str.repeat(1);     //"abc"
str.repeat(2);     //"abcabc"
str.repeat(1.9);     //"abc"
str.repeat(-1);     //Uncaught RangeError: Invalid count value

一句话总结:

把字符串复制n份并返回

padStart(), padEnd()——ES7特性,ES6不支持

原型:

str.padStart(length [, padString])
str.padEnd(length [, padString])

解释:

1. 首先,你的浏览器很可能不支持这个方法,比如我的chrome的版本号为55.0.2883.87就不支持;
2. 另外,我不太确定是ES7的哪一个版本,但我尝试用Babel转换,即使安装了第四个阶段的ES7转换规则,依然是无法转换的;
3. 该API在MDN上有文档说明;
4. 其作用是,当str的长度小于length时,补全str这个字符串到length的长度;
5. 如何补全呢,内容来源于第二个参数(如果没有则为空白符——应该是一个空格);
6. 据说“目前只有 firefox48以上的版本才提供padStart方法。”

更多内容参照阮一峰的吧,我的代码跑不出来结果就不写了。

链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值