Skip to content

字符串

在javascript中字符串的每个元素,在字符串中都占据一个位置,第一个元素的索引值为0,往后加1

  • 1.字面量创建
let a = 'hello'
typeof a 

let a = new String('123')
typeof a 

let a1 = '1+1'
let a2 = new String('1+1')
eval(a1) 2
eval(a2) '1+1'

在实际开发中尽量使用字面量的形式,因为二者的差异很大,string有一个length属性,返回其长度。

1.String对象的方法

  • chartAt,chartCodeAt,codePointAt 返回字符串指定位置的字符或者字符编码
  • indexOf,lastIndexOf 分别返回指定位置或最后位置
  • startsWith, endsWith, includes 字符串是否以自定的字符串开始,或是否包含某字符
  • concat 连接两个字符串
  • fromCharCode,fromCodePoin 从指定的Unicode值序列够高一个字符串
  • split 按指定的字符分割字符串返回数组
  • slice() 截取字符串
  • substring,substr 分别通过指定起始和结束位置,起始位置和长度来返回字符串的指定子集。
  • match,replace, search 正则表达式方法
  • toLowerCase,toUpCase 大小写转换
  • normalize 序列号
  • repeat 将字符串内容重复n次返回
  • trim 去掉开头和结尾的空格

1.1 chartAt str.charAt(index)

//index 若小于0则返回'',若不传则默认为0
let a = 'abc'
a.charAt(0) //a

1.2indexOf和lastIndexOf 两者接收的参数一致,没有查到内容,返回 -1。

let a = 'hello'
a.indexOf('h') //0

1.3concat

let a = 'hello'
let b ='jack'
a.concat(b) //hellojack

1.4split() 按指定的字符分割 split(sep,limit) //limit指定返回的最大数组长度

let str = 'hello jack'
str.split(' ') //[hello,jack]

1.5slice() 提取返回字符串的片段

//含前不含后如果只传一个参数,从该参数开始截取所有 如果尾部是负数则从尾部开始算
let str = 'hello world?'
str.slice(0,3) //hel 
str.slice(0,-1) //hello world

2.字符串的扩展方法(ES6)

2.1.includes() startsWith() endsWith()

  • includes 返回布尔值 表示是否找到字符串
  • startsWith 返回布尔值 表示参数字符串是否在原字符串的头部
  • endsWith 返回布尔值 表示数字字符串是否在原字符串的尾部
let str = 'hello world'
str.includes('hello') //true

2.2repeat() 返回一个重复n次的字符串

let str = 'aaabbb'.repeat(2) //'aaabbbaaabbb'

2.3padStart() ,padEnd()

用于将字符串头部或尾部补全长度, padStart()为头部补全, padEnd()为尾部补全。 这两个方法接收2个参数,第一个指定字符串最小长度,第二个用于补全的字符串。

'x'.padStart(5,'ab') //ababx
'x'.padEnd(5,'xabab') //xabab
//如果不传第二个参数用空格补齐
'x'.padStart(4) //'    x'