美文网首页
总结一下ES5和ES6字符串的方法

总结一下ES5和ES6字符串的方法

作者: 前端的搬运工 | 来源:发表于2019-08-16 15:57 被阅读0次
ES5的方法:

1.charAt 返回指定索引出的字符

var str='abcd';

var a=str.charAt(0);

console.log(a); //'a'

console.log(str); //'abcd'

2.charCodeAt 返回指定索引出的unicode字符

str.charCodeAt(0);   //97

3.indexof 判断一个字符第一次出现在某个字符串的索引,如果包含返回它的索引,如果不包含返回-1.

str.indexOf('a');     //0

str.indexOf('e');     //-1

4.lastIndexOf 判断一个字符最后一次出现在某个字符串的索引,如果包含返回它的索引,如果不包含返回-1.

str.lastIndexOf('b');   //1

str.lastIndexOf('e');   //-1

5.concat拼接2个字符串,返回一个新字符串,对原有字符串没有任何改变。

var str='qwe';

var str1='abc';

var str2=str.concat(str1);

console.log(str2);//"qweabc"

6.substr(n,m) 从索引n开始,截取m个字符,将截取的字符返回,对原字符串没有任何改变。

var b=s.substr(1,1)

console.log(b);  //'w'

7.substring(n,m) 从索引n开始,截取到索引m,不包括m.将截取的字符返回,对原字符串没有任何改变.

var ee=str.substring(1,3);

console.log(ee);  //"bc"

8.slice(n,m) 从索引n开始,截取到索引m,不包括m.将截取的字符返回,对原字符串没有任何改变.

var aa=str.slice(0,3);

console.log(aa);//'abc'

9.split 用指定字符分割字符串,返回一个数组.对原字符串没有任何改变。

var a=str.split('');

console.log(a);  //["a", "b", "c", "d"]

10.replace('a',1) 替换指定字符,返回替换后新的字符串,对原有字符串有改变。(第一个参数可以是正则表达式) 只能替换一次 ,配合正则模式修饰符g使用

var str='aaaaee';

var reg=/a/g;

str.replace(reg,1);   //"1111ee"

11.match() 可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。把找到的字符放在数组里,返回一个数组。

var str='aaaa3ed33';

var reg=/a/g;

str.match(reg);  //["a", "a", "a", "a"]

12.search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。

es6新增加的方法

1.codePointAt() 能够正确处理4个字节储存的字符,返回指定索引出一个字符的码点。codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。

var s='a';s.codePointAt(0) // 134071 s.codePointAt(1) // 57271

codePointAt方法返回的是码点的十进制值,如果想要十六进制的值,可以使用toString方法转换一下。

var s='a';s.codePointAt(0).toString(16) // "20bb7"

s.codePointAt(2).toString(16) // "61"不能识别32位的UTF-16字符

配合for...of循环使用,因为它会正确识别32位的UTF-16字符。

var s='a';

for (let ch of s) {            

    console.log(ch.codePointAt(0).toString(16));

}// 20bb7

// 61

2.codePointAt用于从码点返回对应字符,但是这个方法不能识别32位的UTF-16字符(Unicode编号大于0xFFFF)。

String.fromCodePoint(0x20BB7)

// ""

String.fromCodePoint(0x78, 0x1f680, 0x79) === 'x\uD83D\uDE80y'

// true

3.for..of字符串的遍历器接口

for (let codePoint of 'foo') {

  console.log(codePoint)

}

// "f"

// "o"

// "o"

4.at() 返回指定索引处的字符

'abc'.at(0) // "a"

''.at(0) // ""

5.includes():返回布尔值,表示是否找到了参数字符串。这三个方法都支持第二个参数,表示开始搜索的位置。

6.startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。这三个方法都支持第二个参数,表示开始搜索的位置。

7.endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。这三个方法都支持第二个参数,表示开始搜索的位置。

var s = 'Hello world!';

s.startsWith('world', 6) // true

s.endsWith('Hello', 5) // true

s.includes('Hello', 6) // false

8.repeat() 方法返回一个新字符串,表示将原字符串重复n次。

'x'.repeat(3) // "xxx"

'hello'.repeat(2) // "hellohello"

'na'.repeat(0) // ""

9.padStart(),padEnd()字符串补全长度的功能

padStart()用于头部补全

padEnd()用于尾部补全

padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

'x'.padStart(5, 'ab') // 'ababx'

'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'

'x'.padEnd(4, 'ab') // 'xaba'

如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

'xxx'.padStart(2, 'ab') // 'xxx'

'xxx'.padEnd(2, 'ab') // 'xxx'

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

'abc'.padStart(10, '0123456789')

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

'x'.padStart(4) // '  x'

'x'.padEnd(4) // '

相关文章

  • ES6 字符串扩展

    ES5的实例方法 ES6 字符串扩展方法 1,字符的Unicode表示法 (略)2,codePointAt() ...

  • ES6入门之内置对象的扩展

    1.字符串的扩展 模板字符串。ES5写法: ES6写法: 新增字符串方法:1 repeat; //复制字符串2 i...

  • 数组随机排列

    es6 方法 es5 方法

  • 总结一下ES5和ES6数组的方法

    ES5 数组方法 最近总结了一些ES5和ES6数组的一些方法,希望能给大家带来一些帮助吧 1.Array.isAr...

  • 总结一下ES5和ES6数组的方法

    ES5 数组方法 最近总结了一些ES5和ES6数组的一些方法,希望能给大家带来一些帮助吧 1.Array.isAr...

  • es6第五章学习

    es6第五章 字符串新增方法 1.String.fromCodePoint() ES5 提供String.from...

  • es6 知识

    字符串a.字符串拼接 //es5 var test = 'es6'; co...

  • es5 es6静态方法、类、单例模式

    es5中的类和静态方法 es5继承 es6中的类 es6里面的继承 es6里面的静态方法 es6单例模式 转载:h...

  • 处理js

    将es6的语法和方法编译成es5 压缩: UglifyjsWebpackPlugin

  • 2019-06-21

    JS中ES5和ES6中set和get方法 ES5 情况一:对象已经创建,需要给上面添加setget方法 情况二:当...

网友评论

      本文标题:总结一下ES5和ES6字符串的方法

      本文链接:https://www.haomeiwen.com/subject/nbkqsctx.html