英文 | https://www.javascripttutorial.net/
译文 | 杨小爱
在上节,我们学习了JavaScript字符串的相关知识,错过的小伙伴可以点击文章《【JavaScript 教程】第五章 字符串01— JavaScript 字符串》进行学习。
那么,在今天的教程中,我们将一起来学习JavaScript String类型以及如何有效地操作字符串。
JavaScript String 类型简介
String 类型是字符串原始类型的对象包装器,可以使用 String 构造函数创建,如下所示:
String 类型有一个名为 length 的属性,用于指定字符串中的字符数。
在此示例中,length属性的值为 22,这也是 string中“JavaScript String Type”的字符数。
要获取原始字符串值,请使用字符串对象的以下方法之一:valueOf()、toString() 和 toLocaleString()。
要访问字符串中的单个字符,请使用带有数字索引的方括号 []表示法。如本例所示,第一个字符的索引为零:
方括号[]表示法是从 ES5 开始引入的。在 ES5 之前,您使用 charAt() 方法,该方法更加冗长:
当您对原始字符串变量或文字字符串调用方法时,它会转换为该String类型的实例。例如:
此功能在 JavaScript 中称为原始包装器类型。
字符串操作
String 类型提供了许多有用的方法来有效地操作字符串。我们将在下一节中检查它们中的每一个。
1) 连接字符串
要连接两个或多个字符串,请使用 concat() 方法,如下所示:
concat() 方法将一个或多个字符串连接到另一个字符串并返回结果字符串。请注意, concat() 方法不会修改原始字符串。
除了 concat() 方法,JavaScript 还使用加法运算符 (+) 来连接字符串。在实践中,加法运算符比 concat() 方法使用得更多。
2) 提取子符串
要从字符串中提取子字符串,请使用以下substr()方法:
substr()方法接受两个参数。
第一个参数startIndex是提取字符的位置,而第二个参数length指定要提取的字符数。
如果省略该length 参数,则substr()方法会将字符提取到字符串的末尾。
有时,您希望使用开始和结束索引从字符串中提取子字符串。在这种情况下,您可以使用substring()方法:
请参阅以下示例:
3) 定位子符串
要在字符串中定位子字符串,请使用以下indexOf()方法:
indexOf()方法接受两个参数:要定位的子字符串和fromIndex 方法开始在字符串中向前搜索的位置。
indexOf()返回字符串中的子字符串的第一次出现的索引。如果未找到子字符串,则该indexOf()方法返回 -1。
以下示例使用fromIndex参数:
要查找字符串中子字符串最后一次出现的位置,请使用lastIndexOf()方法。
与indexOf()方法不同,方法lastindexOf()从fromIndex参数向后搜索。
如果在字符串中找不到子字符串,lastIndexOf()方法也会返回-1,如下例所示:
4) 去除空白字符串
要删除字符串的所有前导和尾随空白字符,请使用该trim()方法。
请注意,trim() 方法创建了原始字符串的副本,并删除了空白字符,它不会更改原始字符串。
请注意,trim() 方法仅从 ES5 开始可用。
ES6 引入了两种从字符串中删除空白字符的新方法:
- trimStart() 返回一个字符串,其中从字符串的开头去除了空白字符。
- trimEnd() 返回一个字符串,其中从字符串的末尾去除了空白字符。
5) 变更案例
要更改字符串的大小写,您可以使用 toLowerCase() 和 toUpperCase() 方法:
在某些语言中,将字符串转换为小写和大写的规则非常具体。因此,使用 toLocaleLowerCase() 和 toLocaleUpperCase() 方法更安全,尤其是当您不知道代码将处理哪种语言时。
6) 比较字符串
要比较两个字符串,请使用 localeCompare() 方法:
localeCompare() 返回三个值之一:-1、0 和 1。
- 如果第一个字符串按字母顺序排在第二个字符串之前,则该方法返回 -1。
- 如果第一个字符串按字母顺序排在第二个字符串之后,则该方法返回 1。
- 如果两个字符串相等,则该方法返回 0。
例如:
7) 匹配模式
match() 方法允许您将字符串与指定的正则表达式匹配并获得结果数组。
如果 match() 方法找不到任何匹配项,则返回 null。否则,它返回一个包含整个匹配项和任何括号捕获匹配结果的数组。
如果未设置全局标志 (g),则数组的元素零包含整个匹配项。下面是一个例子:
在这个例子中,模式匹配 expr 字符串中的任何数字。
如果设置了全局标志 (g),则结果数组的元素包含所有匹配项,如下所示:
在此示例中,matches 数组包含 expr 字符串中的所有匹配项,包括 1、2 和 3。
如果您只需要找出字符串是否与正则表达式匹配,则可以使用 search() 方法。
与 match() 方法类似,search() 方法接受一个正则表达式并返回找到第一个匹配项的字符串的位置。如果未找到匹配项,则返回 -1。
8) 替换子符串
要替换字符串中的子字符串,请使用replace()方法。
replace() 方法的第一个参数可以是正则表达式或字符串。如果是正则表达式,replace() 方法将查找匹配项并将其替换为第二个参数 (replaceText)。如果是字符串,replace() 方法将执行精确搜索并进行替换。
replace() 方法在进行替换后返回原始字符串的副本。
以下示例说明了如何使用正则表达式将 the替换为 a:
以下示例显示了如何通过将第一个参数用作文字字符串来替换kickswith holds。
下面的示例展示了如何通过将第一个参数用作文字字符串来将 kicks 替换为 Hold。
总结
在今天的教程中,我们学习了 JavaScript 字符串类型以及如何有效地操作字符串。
如果您觉得今天内容,对您有帮助,请记得分享给您对编程感兴趣的朋友,也许对他也有所帮助。
学习更多技能
请点击下方公众号