我们可以看到字符串的原型上有着非常多的属性和方法,下面来一个一个看其作用和用法。
Sting对象方法
1. charAt()
charAt(index) 方法可返回指定位置的字符。
第一个字符位置为 0, 第二个字符位置为 1,以此类推。
// 返回字符串的最后一个字符
var str = "HELLO WORLD";
var n = str.charAt(str.length-1); // D
2. charCodeAt()
charCodeAt(index) 方法可返回指定位置的字符的 Unicode 编码。
字符串中第一个字符的位置为 0, 第二个字符位置为 1,以此类推。如果在索引处没找到元素则返回 NaN。
UTF-16 编码单元匹配能用一个 UTF-16 编码单元表示的 Unicode 码点。如果 Unicode 码点不能用一个 UTF-16 编码单元表示(因为它的值大于0xFFFF),则所返回的编码单元会是这个码点代理对的第一个编码单元) 。如果你想要整个码点的值,使用 codePointAt()。
3. codePointAt()
codePointAt() 方法可返回指定位置的字符的 Unicode 编码。如果在索引处没找到元素则返回 undefined。
codePointAt与charCodeAt的区别
4. concat()
concat 方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。 concat 方法并不影响原字符串。如果参数不是字符串类型,它们在连接之前将会被转换成字符串。
let hello = 'Hello, '
console.log(hello.concat('Kevin', '. Have a nice day.'))
// Hello, Kevin. Have a nice day.
出于性能考虑,强烈建议赋值操作符(
+
,+=
)代替concat
方法。
5. constructor()
是String字符串的构造函数,返回一个新的字符串实例。
6. endswith(searchString[, length])
endsWith()方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false。这个方法是大小写敏感的。
参数:
- searchString
要搜索的子字符串。 - length 可选
作为 str 的长度。搜索str前面length长度部分的字符串内容。默认值为 str.length。
7. includes(searchString[, position])
includes()方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。区分大小写。
参数:
- searchString
要在此字符串中搜索的字符串。 - position (可选)
从当前字符串的哪个索引位置开始搜寻子字符串,默认值为 0。
8. indexOf(searchValue [, fromIndex])
indexOf()方法返回调用它的 String 对象中第一次出现的指定值的索引,从 fromIndex
处进行搜索。如果未找到该值,则返回 -1。
参数:
- searchValue
要被查找的字符串值。
如果没有提供确切地提供字符串,会被强制设置为"undefined"
例如'undefined'.indexOf()将会返回0。 - fromIndex (可选)
数字表示开始查找的位置。可以是任意整数,默认值为 0。
如果 fromIndex 的值小于 0,或者大于 str.length ,那么查找分别从 0 和str.length 开始。
9. lastIndexOf(searchValue[, fromIndex])
lastIndexOf()方法返回调用String 对象的指定值最后一次出现的索引,在一个字符串中的指定位置 fromIndex
处从后向前搜索。如果没找到这个特定值则返回-1 。
参数:
- searchValue
一个字符串,表示被查找的值。如果searchValue是空字符串,则返回fromIndex。 - fromIndex(可选)
待匹配字符串searchValue的开头一位字符从 str的第fromIndex位开始向左回向查找。如果 fromIndex >= str.length ,则会搜索整个字符串。如果 fromIndex < 0 ,则等同于 fromIndex == 0。
10. localeCompare(compareString[, locales[, options]])
返回一个数字表示是否 引用字符串 在排序中位于 比较字符串 的前面,后面,或者二者相同。
- 当 引用字符串 在 比较字符串 前面时返回 -1
- 当 引用字符串 在 比较字符串 后面时返回 1
- 相同位置时返回 0
11. match(regexp)
检索返回一个字符串匹配正则表达式的结果。
如果使用g标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。
如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组(Array)。 在这种情况下,返回的项目将具有如下所述的其他属性。
-
groups
: 一个捕获组数组 或undefined
(如果没有定义命名捕获组)。 -
index
: 匹配的结果的开始位置 -
input
: 搜索的字符串.
如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj)
将其转换为一个RegExp 。如果你没有给出任何参数并直接使用match() 方法 ,你将会得到一 个包含空字符串的 Array:""。
12. matchAll(regexp)
返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器。
入参RegExp必须是设置了全局模式g的形式,否则会抛出异常TypeError。
13. normalize([form])
会按照指定的一种 Unicode 正规形式将当前字符串正规化。(如果该值不是字符串,则首先将其转换为一个字符串)。
参数:
- form: 四种 Unicode 正规形式(Unicode Normalization Form)"NFC"、"NFD"、"NFKC",或 "NFKD" 其中的一个, 默认值为 "NFC"。
14. padEnd(targetLength [, padString])
会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。
参数:
- targetLength: 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
- padString (可选):填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的缺省值为 " "。
15. padStart(targetLength [, padString])
用另一个字符串填充当前字符串(如果需要的话,会重复多次),以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充。
参数:
- targetLength
当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。 - padString (可选)
填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的默认值为 " "。
16. repeat(count)
构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。count值要介于 0
和 +Infinity
之间的整数。
"abc".repeat(0) // ""
"abc".repeat(1) // "abc"
"abc".repeat(2) // "abcabc"
17. replace(regexp|substr, newSubStr|function)
该方法并不改变调用它的字符串本身,而只是返回一个新的替换后的字符串。在进行全局的搜索替换时,正则表达式需包含 g 标志。
参数:
- regexp (pattern)
一个RegExp
对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。 - substr (pattern)
一个将被newSubStr
替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。 - newSubStr (replacement)
用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名。 - function (replacement)
一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。
18. replaceAll(regexp|substr, newSubstr|function)
方法返回一个新字符串,新字符串所有满足 pattern
的部分都已被replacement
替换。pattern
可以是一个字符串或一个 RegExp
, replacement
可以是一个字符串或一个在每次匹配被调用的函数。
当使用一个 regex
时,您必须设置全局(“ g”)标志,
19. search(regexp)
执行正则表达式和 String 对象之间的一个搜索匹配。
如果匹配成功,则返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。
20. slice(beginIndex[, endIndex])
提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。
21. split([separator[, limit]])
使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。找到分隔符后,会将其从字符串中删除。
参数:
- separator: 指定表示每个拆分应发生的点的字符串。
separator
可以是一个字符串或正则表达式。 - limit: 一个整数,限定返回的分割片段数量。超出限制数量的部分会被舍弃。
22. startsWith()
用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。
参数:
- searchString 要搜索的子字符串。
- position (可选) 在 str 中搜索 searchString 的开始位置,默认值为 0。
23. substr(start[, length]) (不推荐使用)
返回一个字符串中从指定位置开始到指定字符数的字符。
如果 length 为 0 或负值,则 substr 返回一个空字符串。如果忽略 length,则 substr 提取字符,直到字符串末尾。
24. substring(indexStart[, indexEnd])
返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。
25. toLocaleLowerCase([locale, locale, ...])
根据任何指定区域语言环境设置的大小写映射,返回调用字符串被转换为小写的格式。
参数 locale 指明要转换成小写格式的特定语言区域。默认的locale是主机环境的当前区域(locale)设置。
'ALPHABET'.toLocaleLowerCase(); // 'alphabet'
'\u0130'.toLocaleLowerCase('tr') === 'i'; // true
'\u0130'.toLocaleLowerCase('en-US') === 'i'; // false
let locales = ['tr', 'TR', 'tr-TR', 'tr-u-co-search', 'tr-x-turkish'];
'\u0130'.toLocaleLowerCase(locales) === 'i'; // true
26. toLocaleUpperCase([locale, locale, ...])
根据任何指定区域语言环境设置的大小写映射,返回调用字符串被转换为大写的格式。
参数 locale 指明要转换成大写格式的特定语言区域。默认的locale是主机环境的当前区域(locale)设置。
27. toLowerCase()
将调用该方法的字符串值转为小写形式,并返回。不会影响字符串本身的值。
28. toUpperCase()
将调用该方法的字符串转为大写形式并返回。不会影响字符串本身的值。
29. toString()
返回指定对象的字符串形式。并不影响原字符串本身。
30. trim()
会从一个字符串的两端删除空白字符。
31. trimRight() / trimEnd()
从一个字符串的末端移除空白字符。
32. trimStart() / trimLeft()
从字符串的开头删除空格。
33. valueOf()
返回 String对象的原始值。
var x = new String('Hello world');
console.log(x.valueOf()); // "Hello world"
String HTML 包装方法 (现都已废弃,不推荐使用了。)
1. anchor() (已废弃)
anchor() 方法用于创建 HTML 锚。
该方法返回加了 <a> 标签的字符串, 一个参数,用于指定a标签的name属性。如下所示:
> "叶落疑秋".anchor("name");
< "<a name="name">叶落疑秋</a>"
2. big()(已废弃)
big() 方法用于把字符串显示为大号字体。
该方法返回加了 <big> 标签的字符串, 如下所示:
> "yeluoyiqiu".big()
< "<big>yeluoyiqiu</big>"
已废弃
该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。
3. blink()(已废弃)
blink() 方法用于显示闪动的字符串。
该方法返回加了 <blink> 标签的字符串, 如下所示:
> "叶落疑秋".anchor("name");
< <blink>叶落疑秋</blink>
已废弃
该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。
4. bold()(已废弃)
bold() 方法用于把字符串显示为粗体。
该方法返回加了 <b> 标签的字符串, 如下所示:
> "叶落疑秋".bold("name");
< <b>叶落疑秋</b>
4. fixed() (已废弃)
fixed() 方法将一个字符串包裹在<tt></tt>标签中,比如: "<tt>str</tt>".
5. fontcolor(color) (已废弃)
fontcolor()方法创建一个<font>元素让字符串被显示成指定的字体颜色。
6. fontsize(size) (已废弃)
fontsize()方法创建一个<font>元素让字符串被显示成指定的字体大小。
5. italics() (已废弃)
italics() 方法用于把字符串显示为斜体。
该方法返回加了 <i> 标签的字符串, 如下所示:
<i>string</i>
6. link(url) (已废弃)
link() 方法用于把字符串显示为超链接。
该方法返回加了 <a> 标签的字符串, 如下所示:
<a href="url">string</a>
7. small() (已废弃)
用于把字符串显示为小号字。
该方法返回加了 <small> 标签的字符串, 如下所示:
<small>string</small>
8. strike() (已废弃)
用于显示加删除线的字符串。
该方法返回加了 <strike> 标签的字符串, 如下所示:
<strike>string</strike>
9. sub()(已废弃)
用于把字符串显示为下标。
该方法返回加入 <sub> 标签的字符串,如下所示:
<sub>string</sub>
10. sup()(已废弃)
用于把字符串显示为上标。
该方法返回加入 the <sup> 标签的字符串, 如下:
<sup>string</sup>