JavaScript中的String对象方法与属性汇总
String对象主要用于文本字符串处理。
本篇文章共介绍了32种方法后续如有补充会随时更新
属性
constructor
String对象的构造函数,是创建该对象的函数引用。
length
字符串长度
prototype
String对象的原型,可以在上面添加属性和方法
var a = 'abc'
a.constructor.prototype.abc = 'aaa'
a.constructor.prototype.sat = ()=> 'hello'
log(a.abc) // aaa
log(a.say()) // hello
方法
charAt()
说明:返回在指定位置的字符。
语法:str.charAt(位置)
代码:
var str = 'hello word'
log(str.charAt(1))
// 打印 e
charCodeAt()
说明:返回在指定的位置的字符的 Unicode 编码。
语法:str.charCodeAt(位置)
代码:
var str = 'hello word'
log(str.charCodeAt(1))
// 打印 101
concat()
说明:连接两个或更多字符串,并返回新的字符串。
语法:str.concat(str1, str2)
代码:
var str = 'aaa'
var str1 = 'bbb'
var str2 = 'ccc'
log(str.concat(str1, str2))
// 打印 aaabbbccc
fromCharCode()
说明:将 Unicode 编码转为字符
语法:String.fromCharCode(65)
代码:
log(String.fromCharCode(65))
// 打印 A
indexOf()
说明:返回某个指定的字符串值在字符串中首次出现的位置。
语法:str.indexOf(字符串)
代码:
var str = 'hello'
log(str.indexOf('e'))
// 打印 1
includes()
说明:查找字符串中是否包含指定的子字符串。返回true或false
语法:str.includes(字符串)
代码:
var str = 'hello word'
log(str.includes('word'))
// 打印 true
match()
说明:查找找到一个或多个正则表达式的匹配。
语法:str.match(正则)
代码:
var str = 'aabbccdd'
log(str.match(/a/g))
// 打印 ["a", "a"]
log(str.match(/a/))
// 打印 ["a", index: 0, input: "aabbccdd"]
repeat()
说明:复制字符串自身指定次数,并将它们连接在一起返回。
语法:str.repeat(复制次数);
代码:
var str = 'abc'
log(str.repeat(3))
// 打印 abcabcabc
replace()
说明:在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。
语法:str.replace(searchValue,newValue)
代码:
var str = 'aabbcc'
log(str.replace('b', 't'))
// 打印 aatbcc
log(str.replace(/b/g, 't'))
// 打印 aattcc
search()
说明:查找与正则表达式相匹配的值的位置。
语法:str.search(字符串)
代码:
var str = 'aabbcc'
log(str.search(/c/))
// 打印 4
slice()
说明:提取字符串的片断,并在新的字符串中返回被提取的部分。
语法:slice(start, end)
代码:
var str="Hello world!"
log(str.slice(2,9))
// 打印 llo wro
split()
说明:把字符串分割为字符串数组。
语法:str.split(字符串)
代码:
var str = 'hello wrod'
log(str.split(''))
// 打印 ["h", "e", "l", "l", "o", " ", "w", "r", "o", "d"]
log(str.split('lo'))
// 打印 ["hel", " wrod"]
startsWith()
说明:查看字符串是否以指定的子字符串开头。返回ture或false
语法:str.startsWith(字符串)
代码:
var str = 'hello wrod'
log(str.startsWith('hello'))
// 打印 true
log(str.startsWith('llo'))
// 打印 false
endsWith()
说明:查看字符串是否以指定的子字符串结尾。返回ture或false
语法:str.endsWith(字符串)
代码:
var str = 'hello wrod'
log(str.startsWith('hello'))
// 打印 true
log(str.startsWith('llo'))
// 打印 false
substr()
说明:从起始索引号提取字符串中指定数目的字符。第二个参数为要截取的字符个数,如果不填默认截取到字符的结尾,不会改变源字符串。
语法:str.substr(start , length)
代码:
var str = 'hello wrod'
log(str.substr(1, 3))
// 打印 ell
log(str.substr(1))
// 打印 ello wrod
substring()
说明:提取字符串中两个指定的索引号之间的字符。截取从一个位置到另一个位置之间的字符片段。如果省略第二个参数,那么返回的子串会一直到字符串的结尾。
语法:string.substring(from, to)
代码:
var str = 'hello wrod'
log(str.substring(1))
// 打印 ello wrod
log(str.substring(1, 3))
// 打印 el
toLowerCase()
说明:把字符串转换为小写。
语法:str.toLowerCase()
代码:
var str = 'AAAbbbCCCdddEEE'
log(str.toLowerCase())
// 打印 aaabbbcccdddeee
toUpperCase()
说明:把字符串转换为大写。
语法:str.toUpperCase()
代码:
var str = 'AAAbbbCCCdddEEE'
log(str.toUpperCase())
// 打印 AAABBBCCCDDDEEE
trim()
说明:去除字符串两边的空白
语法:str.trim()
代码:
var str = ' AAAbbbCCCdddEEE '
log(str.trim())
// 打印 AAAbbbCCCdddEEE
toLocaleLowerCase()
说明:根据本地主机的语言环境把字符串转换为小写。
语法:str.toLocaleLowerCase()
代码:
var str = 'AAAbbbCCCdddEEE'
log(str.toLocaleLowerCase())
// 打印 aaabbbcccdddeee
toLocaleUpperCase()
说明:根据本地主机的语言环境把字符串转换为大写。
语法:str.toLocaleUpperCase()
代码:
var str = 'AAAbbbCCCdddEEE'
log(str.toLocaleUpperCase())
// 打印 AAABBBCCCDDDEEE
valueOf()
说明:返回某个字符串对象的原始值。valueOf() 方法通常由 JavaScript 在后台自动进行调用,而不是显式地处于代码中。
语法:str.valueOf()
代码:
var str = 'AAAbbbCCCdddEEE'
log(str.valueOf())
// 打印 AAAbbbCCCdddEEE
toString()
说明:返回一个字符串。
语法:str.toString()
代码:
var str = 'AAAbbbCCCdddEEE'
log(str.toString())
// 打印 AAAbbbCCCdddEEE
padStart()
说明:从头部填充字符串。(ES6)
语法:str.padStart(targetLength, 字符串)
代码:
var str = '123'
log(str.padStart(5, '0'))
// 打印 00123
padEnd()
说明:在尾部填充字符串。(ES6)
语法:str.padEnd(targetLength, 字符串)
代码:
var str = '123'
log(str.padEnd(5, '0'))
// 打印 12300
raw()
说明:raw()是一个模板字符串的标签函数,是用来获取一个模板字符串的原始字面量值。
callSite
一个模板字符串的“调用点对象”
...substitutions
任意个可选的参数,表示任意个内插表达式对应的值。templateString模板字符串。
语法:String.raw(callSite, ...substitutions)
代码:
var str = 'abcd'
log(String.raw`hel${str}lo`)
// 打印 helabcdlo
fromCodePoint()
说明:用于从 Unicode 码点返回对应字符,但是这个方法不能识别码点大于0xFFFF
的字符。
语法:String.fromCharCode(0x20BB7)
代码:
String.fromCharCode(0x20BB7)
// "ஷ"
codePointAt()
说明:JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2
个字节。能够正确处理 4 个字节储存的字符,返回一个字符的码点。
语法:str.codePointAt(length)
代码:
let str = 'abc'
const res = str.codePointAt(0)
console.log('打印', res)
normalize()
说明:原字符与重音符号的合成,两个字符合成一个字符,用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。
语法:normalize
方法可以接受一个参数来指定normalize
的方式,参数的四个可选值如下。
-
NFC
,默认参数,表示“标准等价合成”(Normalization Form Canonical Composition),返回多个简单字符的合成字符。所谓“标准等价”指的是视觉和语义上的等价。 -
NFD
,表示“标准等价分解”(Normalization Form Canonical Decomposition),即在标准等价的前提下,返回合成字符分解的多个简单字符。 -
NFKC
,表示“兼容等价合成”(Normalization Form Compatibility Composition),返回合成字符。所谓“兼容等价”指的是语义上存在等价,但视觉上不等价,比如“囍”和“喜喜”。(这只是用来举例,normalize
方法不能识别中文。) -
NFKD
,表示“兼容等价分解”(Normalization Form Compatibility Decomposition),即在兼容等价的前提下,返回合成字符分解的多个简单字符。
代码:
trimStart()
说明:消除字符串头部的空格。
语法:str.trimStart()
代码:
let str = ' abc '
const res = str.trimStart()
console.log('打印', res)
// 打印 'abc '
trimEnd()
说明:消除尾部的空格。
语法:str.trimEnd()
代码:
let str = ' abc '
const res = str.trimEnd()
console.log('打印', res)
// 打印 ' abc'
matchAll()
说明:方法返回一个正则表达式在当前字符串的所有匹配.
语法:str.matchAll(RegExp)
代码:
let str = 'hello word'
const res = str.matchAll(/b/g)
console.log('打印', res)
// 打印 Object [RegExp String Iterator] {}