charAt( )
参数为一个下标,默认为0,查询字符串对应下标的字符,超出范围返回空字符串
var str='abcd'
console.log( str.charAt() ) // 'a'
console.log( str.charAt(2) ) // 'c'
console.log( str.charAt(100) ) // ''
charCodeAt( )
参数为一个下标,默认为0,查询字符串对应下标的字符的Unicode编码,超出范围返回NaN
var str='abcd'
console.log( str.charCodeAt() ) // 97
console.log( str.charCodeAt(2) ) // 99
concat( )
链接字符串,相当于字符串相加。
var str1='hello'
var str2=' world'
var str3=str1.concat(str2) //相当于 var str3=str1+str2
console.log(str3) //'hello world'
indexOf( )
检索字符串在被检索字符串中所在的开始位置(区分大小写),空字符串返回0,不传参数返回-1,不存在返回-1。
var str='hello world'
str.indexOf('') //0
str.indexOf('llo') //2
str.indexOf('World') //-1
match( )
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配项组成的数组。
var str='1 hello 2 world 3'
str.match(/\d+/g) //['1','2','3']
replace( )
用于把字符串中的特定字符串替换成新的字符串,或者把符合正则表达式的字符串替换成新的字符串,返回替换后的字符串,第一个参数为被替换的字符串或表达式,第二个为插入的字符串。
var str='1hello2world3'
str.replace('h','H') //1Hello2world3
str.replace(/\d+/g,'0') //0hello0word0
str //'1hello2world3'
search( )
用于检索字符串中指定的子字符串开始的位置,或检索与正则表达式相匹配的子字符串所在的位置。如果没有找到则返回-1,用法与indexOf相似。
var str='helloWorld'
str.search('W') //5
str.search(/llo/) //2
slice( )
提取字符串片段,返回被提取的字符串。第一个参数为开始位置,必填,第二个参数为结束位置(不包括),不填默认截取到最后。参数可以为负值,负值代表从后往前数
var str='helloWorld'
str.slice(1) //'elloWorld'
str.slice(0,4) //'hell'
split( )
用于分割字符串,返回分割后的片段组成的数组,第一个参数为分割标识符,第二个参数可选,表示分割后形成的数组保留的长度,不填默认保留全部
var str='helloWorld'
str.split('o') //['hell','W','rld']
str.split('',3) //['h','e','l']
toLowerCase( )
把字符串转化为小写。
var str='abcdEFG'
str.toLowerCase() //'abcdefg'
str //’abcdEFG'
toUpperCase( )
把字符串转化为大写
var str='abcdEFG'
str.toUpperCase() //'ABCDEFG'
str //’abcdEFG'
substr( )
提取字符串片段,返回被提取的字符串,第一个参数为开始位置,第二个参数为总共截取的长度,默认截取到原字符串的最后一位
var str='abcdefg'
str.substr(2,2) //'cd'
substring( )
提取字符串片段,返回被提取的字符串,第一个参数为开始位置,第二个参数为结束位置(不包括),与slice( )类似。
var str='abcdefg'
str.sunstring(2,5) //'cde'
ES6新增操作方法
for of
for of 方法用来遍历字符串。
var str='abcd'
for (let item of str){
console.log(item)
// 'a'
// 'b'
// 'c'
// 'd'
}
includes( )
判断字符串中是否存在某一个片段,返回布尔值。第二个参数为开始搜索的位置。
var str='abcdefg'
str.includse('cde') //true
startsWith( )
判断字符串是否以传入的字符串为开始。第二个参数为开始搜索的位置。
var str='helloWorld!'
str.startWith('hello') //true
endsWith( )
判断字符串是否以传入的字符串为结尾。第二个参数为开始搜索的位置。
var str='helloWorld!'
str.endsWith('!') //true
repeat( )
将原字符串重复n次,返回新的字符串,传入小数会被取整Math.floor( )
var str='a'
str.repeat(3) //'aaa'
str.repeat(3.9) //'aaa'
padStart( )和padEnd( )
用于补全字符串到指定长度,第一个参数为目标长度,如果小于或等于原字符串长度则返回原字符串,第二个参数为补全的内容(长度不够补全会重复此字符串,长度超出需要的长度会被截取),不写默认为空格,padStart( )从开始位置填充,padEnd( )从结束位置填充。
var str='abc'
str.padStart(5,'h') //'hhabc'
str.padStart(10,'hello') //'hellohelabc'
str.padEnd(5,'hello') //'abche'
str.padstart(5) //' abc'
matchAll( )
返回一个正则表达式在当前字符串的所有匹配。
模板字符串
用反引号 ` 标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
- 模板字符串中使用变量用${ }包括起来,大括号内部可以放入任意的 JavaScript 表达式,可以进行运算,以及引用对象属性。
var username='xiaohei'
`username=${username}` //'username=xiaohei'
- 如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。
var username='xiaohei'
`/`user/`name=${username}` //'`user`name=xiaohei'
- 使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。
$('#box').html(
`
<ul>
<li>first</li>
<li>second</li>
</ul>
`
)
//上面代码中,所有模板字符串的空格和换行,都是被保留的
//如果不想要这个换行,可以使用trim方法消除它。
$('#box').html(
`
<ul>
<li>first</li>
<li>second</li>
</ul>
`.trim()
)