String类型是字符串的对象包装类型,可以使用String构造函数来创建。
var stringObject = new String(‘hello world‘)
String对象的方法可以在所有基本的字符串值中访问到。其中,继承的valueOf()、toLocaleString()和toString()方法,都返回对象所表示的基本字符串值。
字符方法
var stringObj = ‘hello world‘
stringOjb.charAt(1) // ‘e‘
var stringObj = ‘hello world‘
stringObj.charCodeAt(1) // 101
var stringObj = ‘hello world‘
stringObj[1] // ‘e‘
字符串操作方法
concat() 拼接字符串,可以接受任意多个参数
var stringValue = ‘hello ‘
var result = stringValue.contact(‘world‘, ‘!‘)
result // ‘hello world!‘
stringValue // ‘hello ‘
slice(start, end)
start:子字符串的开始位置
end:子字符串最后一个字符后面的位置
var stringValue = ‘hello world‘
stringValue.slice(3) // ‘lo world‘
stringValue.slice(3, 7) // ‘lo w‘
slice()方法会将传入的负值与字符串的长度相加
var stringValue = ‘hello world‘
stringValue.slice(-3) // ‘rld‘
stringValue.slice(3, -4) // ‘lo w‘
substr(start, length)
start:子字符串的开始位置
length:返回字符的个数
var stringValue = ‘hello world‘
stringValue.substr(3) // ‘lo world‘
stringValue.substr(3, 7) // ‘lo worl‘
substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0
var stringValue = ‘hello world‘
stringValue.substr(-3) // ‘rld‘
stringValue.substr(3, -4) // ‘‘
substring(start, end)
start:子字符串的开始位置
end:子字符串最后一个字符后面的位置
var stringValue = ‘hello world‘
stringValue.substring(3) // ‘lo world‘
stringValue.substring(3, 7) // ‘lo w‘
substring()方法会把所有负值参数都转换为0
var stringValue = ‘hello world‘
stringValue.substring(-3) // ‘hello world‘
stringValue.substring(3, -4) // ‘hel‘,相当于stringValue.substring(3, 0),由于这个方法会将较小的数作为开始位置,将较大的数作为结束位置,因此最终相当于调用了substring(0, 3)
字符串位置方法
indexOf()
lastIndexOf()
这两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置(如果没有找到该子字符串,则返回-1),第二个参数表示从字符串中的哪个位置开始搜索。
var stringValue = ‘hello world‘
stringValue.indexOf(‘o‘) // 4
stringValue.lastIndexOf(‘o‘) // 7
stringValue.indexOf(‘o‘, 6) // 7
stringValue.lastIndexOf(‘o‘, 6) // 4
var stringValue = ‘Lorem ipsum dolor sit amet, consectetur adipisicing elit‘
var positions = new Array()
var pos = stringValue.indexOf(‘e‘)
while(pos > -1) {
positions.push(pos)
pos = stringValue.indexOf(‘e‘, pos + 1)
}
positions // [3, 24, 32, 35, 52]
trim()方法
创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果。
var stringValue = ‘ hello world ‘
var trimmedStringValue = stringValue.trim()
stringValue // ‘ hello world ‘
trimmedStringValue // ‘hello world‘
字符串大小写转换方法
字符串的模式匹配方法
match()
var text = ‘cat, bat, sat, fat‘
var pattern = /.at/
var matches = text.match(pattern)
matches.index // 0
matches[0] // ‘cat‘
search()
var text = ‘cat, bat, sat, fat‘
var pos = text.search(/at/)
pos // 1
replace()
var text = ‘cat, bat, sat, fat‘
var result = text.replace(‘at‘, ‘ond)
result // ‘cond, bat, sat, fat‘
result = text.replace(/at/g, ‘ond)
result // ‘cond, bond, sond, fond‘
split()
var colorText = ‘red, blue, green, yellow‘
var colors1 = colorText.split(‘,‘) // [‘red‘, ‘blue‘, ‘green‘, ‘yellow‘]
var colors1 = colorText.split(‘,‘, 2) // [‘red‘, ‘blue‘]
localeCompare()方法
比较两个字符串,并返回下列值中的一个:
var stringValue = ‘yellow‘
stringValue.localeCompare(‘brick‘) // 1
stringValue.localeCompare(‘yellow‘) // 0
stringValue.localeCompare(‘zoo‘) // -1
fromCharCode()方法
接收一或多个字符编码,然后将它们转换成一个字符串(不能识别大于0xFFFF的码点)。
String.fromCharCode(104, 101, 108, 111) // ‘hello‘
String.fromCodePoint()
弥补String.fromCharCode()方法,可以识别大于0xFFFF的字符
String.fromCodePoint(0x20BB7) // "??"
String.fromCodePoint(0x78, 0x1f680, 0x79) === ‘x\uD83D\uDE80y‘ // true
String.raw()
返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串
String.raw`Hi\n${2+3}!`
// 实际返回 ‘Hi\\n5!‘,显示的是转义后的结果 ‘Hi\n5!‘
codePointAt()
var s = ‘吉‘
s.length // 2
s.charAt(0) // ‘‘
s.charAt(1) // ‘‘
s.charCodeAt(0) // 55362
s.charCodeAt(1) // 57271
normalize()
用来将字符的不同表示方法统一为同样的形式(Unicode正规化)
includes(),startsWith(),endsWith()
let s = ‘Hello world!‘
s.startsWith(‘Hello‘) // true
s.endsWith(‘!‘) // true
s.includes(‘0‘) // true
这三个方法都支持第二个参数,表示开始搜索的位置
let s = ‘Hello world!‘
s.startsWith(‘world‘, 6) // true
s.endsWith(‘Hello‘, 5) // true
s.includes(‘Hello‘, 6) // false
使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。
repeat()
返回一个新字符串,表示将原字符串重复n次,如果repeat的参数是字符串,则会先转换成数字。
let s = ‘x‘
s.repeat(3) // ‘xxx‘
s.repeat(0) // ‘‘
s.repeat(Infinity) // RangeError: Invalid count value
s.repeat(-1) // RangeError: Invalid count value
padStart(),padEnd()
字符串补全长度。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
‘xxx‘.padStart(2, ‘ab‘) // ‘xxx‘
‘xxx‘.padEnd(2, ‘ab‘) // ‘xxx‘
‘abc‘.padStart(10, ‘0123456789‘) // ‘0123456abc‘
‘x‘.padStart(4) // ‘ x‘
‘x‘.padEnd(4) // ‘x ‘
‘12‘.padStart(10, ‘YYYY-MM-DD‘) // ‘YYYY-MM-12‘
‘09-12‘.padStart(10, ‘YYYY-MM-DD‘) // ‘YYYY-09-12‘
trimStart(),trimEnd()
它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。
const s = ‘ abc ‘
s.trim() // ‘abc‘
s.trimStart() // ‘abc ‘
s.trimEnd() // ‘ abc‘
trimLeft()是trimStart()的别名,trimRight()是trimEnd()的别名
matchAll()
matchAll()方法返回一个正则表达式在当前字符串的所有匹配
原文:https://www.cnblogs.com/shuilinger/p/12782063.html