charAt()
charAt()
方法从一个字符串中返回指定的字符
- 语法:
str.charAt(index)
index
:一个介于0和字符串长度减一之间的整数
- 返回值:指定的字符
- 代码:
let str = 'Brave new world'
str.charAt(0) // B
str.charAt(str.length - 1) // d
charCodeAt()
静态String.charCodeAt()
方法返回0到65535之间的整数,表示给定索引处的UTF-16
代码单元(在Unicode
编码单元表示一个单一的UTF-16
编码单元的情况下,UTF-16
编码单元匹配Unicode
编码单元)
- 语法:
charCodeAt(index)
index
:一个大于等于0,小于字符串长度的整数。如果不是一个数值,则默认值为0.
- 返回值:返回值是一表示给定索引处(string的index索引处)字符的UTF-16代码单元值的数字;如果索引超出范围,则返回NaN
- 代码:
'ABC'.charCodeAt(0)// 65
'ABC'.charCodeAt(1)// 66
'ABC'.charCodeAt(2)// 67
concat()
concat()
方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。
- 语法:
str.concat(string2, string3, ... ,stringN)
string2, string3, ... ,stringN
:和原字符串连接的多个字符串
- 返回值:新的字符串
- 代码:
let hello = 'Hello, '
hello.concat('zzz.') //Hello, zzz.
fromCharCode()
静态String.fromCharCode()
方法返回指定的RTF-16代码单元序列创建的字符串。简单来说,就是接受一个Unicode值,然后返回一个字符串。例如65-A, 66-B
- 语法:
fromCharCode(num)
num
:范围在0-65535之间,65对应A、66对应B
- 返回值:一个长度为N的字符串,由N个指定的UTF-16代码单元组成。
- 代码:
String.formCharCode(65,66,67)// 'ABC'
String.fromCharCode(0x2014)// '—'
includes()
includes()
方法用于判断一个字符串是否包含在另外一个字符串中,根据情况返回true或false。
- 语法:
str.includes(searchString, fromIndex)
searchString
:要在此字符串中搜索的字符串fromIndex
:可选。从当前字符串的哪个索引位置开始搜索子字符串,默认值为0
- 返回值:如果当前字符串包含被搜索的字符串,就返回true;否则返回false
- 代码:
'liang'.includes('l')// true
indexOf()
indexOf()
方法返回调用它的String对象中第一次出现指定值的索引,从fromIndex
处进行搜索。如果未找到该值,则返回-1
- 语法:
str.indexOf(searchString, fromIndex)
searchString
:一个字符串表示被查找到值fromIndex
:表示开始查找的位置。可以是任意整数,默认值为0
- 返回值:指定值的第一次出现的索引;如果没有找到,则返回-1
- 代码:
'liang'.indexOf('ang') //2
lastIndexOf()
lastIndexOf()
方法返回指定值在调用该方法的字符串最后出现的位置,如果没找到则返回-1。从该字符串的后面向前查找,从fromIndex
处开始
- 语法:
str.lastIndexOf(searchString, fromIndex)
searchString
:一个字符串表示被查找的值fromIndex
:从调用该方法字符串的此位置处开始查找(从末尾到开头寻找)
- 返回值:指定值的第一次出现的索引;如果没有找到,则返回-1
- 代码:
'zzliangs'.lastIndexOf('s', 3)
length
length
属性表示一个字符串的长度
- 语法:
str.length
- 返回值:字符串的长度
- 代码:
let str = 'zzliang'
str.length //7
str[str.length - 1] //'g'
match()
match()
方法检索返回一个字符串匹配正则表达式的结果
- 语法:
str.match(regexp)
regexp
:一个正则表达式对象
- 代码:
var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
matchAll()
matchAll()
方法返回一个包含所有匹配正则表达式及分组捕获结果的迭代器
str.matchAll(regexp)
regexp
:正则表达式对象
- 返回值:一个迭代器
- 代码:
const regexp = RegExp('foo*','g');
const str = 'table football, foosball';
let matches = str.matchAll(regexp);
for (const match of matches) {
console.log(match);
}
//输出
//[
// 'foo',
// index: 6,
// input: 'table football, foosball',
// groups: undefined
//]
//[
// 'foo',
// index: 16,
// input: 'table football, foosball',
// groups: undefined
//]
padEnd()
padEnd()
方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串末尾(右侧)开始填充
- 语法:
str.padEnd(targetLength, padString)
targetLength
:当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。padString
:填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。
- 返回值:在原字符串开头填充指定的填充字符串直到目标长度所形成的新字符串。
- 代码:
'liang'.padEnd(10); // 'liang ' 共 10 长度
'liang'.padEnd(10, 'a'); // 'liangaaaaa'
'liang'.padEnd(20, 'JavaScriptLiang'); // jsliangJavaScriptLiang
padStart()
padStart()
方法用另一个字符串填充当前字符串(重复,如果需要的话),以便产生的字符串达到给定的长度。填充从当前字符串的开始(左侧)应用的。
- 语法:
str.padStart(targetLength, padString)
targetLength
:当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。padString
:填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。
- 返回值:在原字符串开头填充指定的填充字符串直到目标长度所形成的新字符串。
- 代码:
'liang'.padStart(10); // ' jsliang' 共 10 长度
'liang'.padStart(10, 'a'); // 'aaaaajsliang'
'liang'.padStart(20, 'JavaScriptLiang'); // JavaScriptLiangjsliang
repeat()
repeat()
构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。
- 语法:
str.repeat(count)
count
:表示在新构造的字符串中重复了多少遍原字符串
- 返回值:包含指定字符串的指定数量副本的新字符串
- 代码:
'liang'.repeat(0); // ''
'liang'.repeat(1); // 'liang'
'liang'.repeat(2.5); // 'liangliang'
'liang'.repeat(3); // 'liangliangliang'
replace
replace()
方法返回一个由替换值(replacement)替换一些或所有匹配模式(pattern)后的新字符串。模式可以是一个字符串或正则表达式,替换值可以是一个字符串或者一个每次匹配 都要调用的回调函数。
- 语法:
str.replace(regexp|substr, newSubStr|function)
regexp
:正则表达式substr
:一个被newSubStr替换的字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。newSubStr
:用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以以内插一些特殊的变量名。
- 返回值:一个部分或全部匹配由替代模式所取代的字符串
- 代码:
var str = 'Twas the night before Xmas...';
var newstr = str.replace(/xmas/i, 'Christmas');
console.log(newstr); // Twas the night before Christmas...
search()
search()
方法执行正则表达式和String对象之间的以一个搜索匹配
- 语法:
str.search(regexp)
regexp
:正则表达式
- 返回值:如果匹配成功,则search()返回正则表达式在字符串中首次匹配项的索引;否则,返回-1.
- 代码:
var str = "hey JudE";
var re = /[A-Z]/g;
var re2 = /[.]/g;
console.log(str.search(re)); // 4
console.log(str.search(re2)); // -1
slice()
slice()
方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。
- 语法:
str.slice(beginIndex, endIndex)
beginIndex
:从该索引(以0为基数)处开始提取原字符串中的字符。endIndex
:可选。从该索引(以0为基数)处结束提取字符串。如果省略该参数,slice()会一直提取到字符串末尾
- 返回值:返回一个从原字符串中提取出来的新字符串。
- 代码:
var str1 = 'The morning is upon us.', // str1 的长度 length 是 23。
str2 = str1.slice(1, 8),
str3 = str1.slice(4, -2),
str4 = str1.slice(12),
str5 = str1.slice(30);
console.log(str2); // 输出:he morn
console.log(str3); // 输出:morning is upon u
console.log(str4); // 输出:is upon us.
console.log(str5); // 输出:''
split()
split()
方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分割为子字符串,以确定每个拆分的位置。
- 语法:
str.split(separator, limit)
separator
:指定表示每个拆分应发生的点的字符串。separtor可以是一个字符串或正则表达式limit
:一个整数,限定返回的分割片段数量
- 返回值:返回源字符串以分隔符出现位置分隔而成的一个Array
- 代码:
'liang'.split('')//['l', 'i', 'a', 'n', 'g']
'liang'.split('', 2); // ['l', 'i']
substring()
substring()
方法返回一个字符串在开始检索到结束检索之间的一个子集,或从开始索引直到字符串末尾的一个子集
- 语法:
tr.substring(indexStart, indexEnd)
indexStart
:需要截取的第一个字符的索引,该字符作为返回的字符串的首字母indexEnd
:可选。一个0到字段串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内
- 返回值:包含给定字符串的指定部分的新字符串
- 代码:
'liang'.substring(0, 2) //li
toLowerCase()
toLowerCase()
会将调用该方法的字符串值转为小写形式,并返回
- 语法:
str.toLowerCase()
- 返回值:一个新的字符串,表示串转换为小写的调用字符
- 代码:
console.log('中文简体 zh-CN || zh-Hans'.toLowerCase());
// 中文简体 zh-cn || zh-hans
console.log( "ALPHABET".toLowerCase() );
// "alphabet"
toString()
toString()
方法返回指定对象的字符串形式。
- 语法:
str.toString()
- 返回值:指定对象的字符串形式。
- 代码:
// toString 测试仅能转换数组
[1, 2].toString(); // '1,2'
// 如果需要转换数字,建议还是 String(Number)
String(3); // '3'
toUpperCase()
toUpperCase()
将调用该方法的字符串值转换为大写形式,并返回
- 语法:
str.toUpperCase()
- 返回值:将调用该方法的字符串值转换为大写形式,并返回。
toUpperCase
方法不影响字符串本身的值。 - 代码:
console.log( "alphabet".toUpperCase() ); // "ALPHABET"
注释:
toLocalUpperCase
区别于toUpperCase
在于一些小种语言需要使用特定的toLocalLowerCase
/toLocaleUpperCase
进行转换大小写。
trim()
trim()
方法会从一个字符串的两端删除空白字符。
- 语法:
str.trim()
- 返回值:
trim()
方法并不影响原字符串本身,它返回的是一个新的字符串。 - 代码:
' liang '.trim(); // 'liang'
trimEnd()
trimEnd()
方法从字符串的末尾删除空格。trimRight()
是此方法的别名。
- 语法:
str.trimEnd()
- 返回值:一个新字符串,表示从其(右)端剥去空白的调用字符串。
- 代码:
' liang '.trimEnd(); // ' liang'
trimStart()
trimStart()
方法从字符串的开头删除空格。trimLeft()
是此方法的别名。
- 语法:
str.trimStart()
- 返回值:
trimStart()
一个新字符串,表示从其开头(左端)剥离空格的调用字符串。 - 代码:
' liang '.trimStart(); // 'liang '