现在ES6增加了很多的字符串的方法,但是有些感觉自己也不是很懂,所以就罗列了一些平常的用的。

includes, startsWith, endsWith

  • includes(): 返回布尔值,表示是否找到了参数字符串;

  • startsWith(): 返回布尔值,表示参数字符串是否在源字符串的头部

  • endsWith(): 返回布尔值,表示参数字符串是否在源字符串的尾部。

使用:

var s = 'Hello world';

s.startsWith('Hello');//true
s.endsWith('Hello');//true
s.includes('o');//true

也都可以支持第二个参数,表示开始搜索的位置。

var s = 'Hello world';

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


repeat()

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

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

传入的如果是小数,会被取证;
如果是负数或者Infinity,会报错;
NaN等同于0;
如果是字符串,则会先转换成数字。

padStart、 padEnd

为了补全字符串,引入了padStart和padEnd。如果字符串不够指定长度,会在头部或者尾部补全。
padStart()、padEnd() 共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx'
'abc'.padStart(10, '0123456789') // '0123456abc'

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

字符串模板

模板字符串,用反引号标识(`),它可以当作普通字符串,也可以定义多行字符串,或者在字符串中嵌入变量。

`In Javascript '\n' is a line-feed.`

`In Javascript this is 
not legal.`

var name="Bob", time = "today";
`Hello ${name}, how are you ${time}?`

const tmpl = addrs =>`
    <table>
    ${addrs.map(addr => `
        <tr><td>${addr.first}</td></tr>
        <tr><td>${addr.last}</td></tr>
    `).join('')}

`

还有其他很多方法
String.raw()
模板字符串的限制
.
.
.


jyren_Rachel
107 声望4 粉丝

下一篇 »
ES6: 数组