1.概述
本文主要是讲述关于JavaScript字符串的一些操作与方法。
2.字符串的操作
2.1.创建字符串
一个字符串用于存储一系列字符就像 “abc”.
一个字符串可以使用单引号或双引号:
示例:
let str = "abc"
// abc
console.log(str);
2.2.访问字符串
let str = "abc"
// abc
console.log(str);
// b
console.log(str[1]);
2.3.获取字符串长度
let str = "abc"
// 3
console.log(str.length);
3.字符串的方法
3.1.charAt() 方法
charAt() 方法可返回指定位置的字符。
第一个字符位置为 0, 第二个字符位置为 1,以此类推.
示例:
let str = "abc"
let char = str.charAt(2)
// c
console.log(char);
3.2.charCodeAt() 方法
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码,返回值是 0 - 65535 之间的整数,表示给定索引处的 UTF-16 代码单元。
字符串中第一个字符的位置为 0, 第二个字符位置为 1,以此类推。
示例:
let str = "abc"
let unicode = str.charCodeAt(1)
// 98
console.log(unicode);
3.3.concat() 方法
concat() 方法用于连接两个或多个字符串。
该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串。
示例1:
//连接两个字符串
let str1 = "a"
let str2 = "b"
let result = str1.concat(str2)
// ab
console.log(result);
示例2:
//连接两个以上的字符串
let str1 = "a"
let str2 = "b"
let str3 = "c"
let result = str1.concat(str2, str3)
// abc
console.log(result);
3.4.endsWith() 方法
endsWith() 方法用来判断当前字符串是否是以指定的子字符串结尾的(区分大小写)。ES6
如果传入的子字符串在搜索字符串的末尾则返回 true,否则将返回 false。
示例:
let str = "abc"
let result = str.endsWith("c")
//true
console.log(result);
3.5.fromCharCode() 方法
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
**注意:**该方法是 String 的静态方法,字符串中的每个字符都由单独的 Unicode 数字编码指定。使用语法: String.fromCharCode()。
示例:
let result = String.fromCharCode(98)
// b
console.log(result);
3.6.indexOf() 方法
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
注意: indexOf() 方法区分大小写。
示例1:
let str = "abc"
let result = str.indexOf("a")
// 0
console.log(result);
示例2:
let str = "abc"
//在位置1开始查找"a"
let result = str.indexOf("a", 1)
// -1
console.log(result);
3.7.includes() 方法
includes() 方法用于判断字符串是否包含指定的子字符串。ES6
如果找到匹配的字符串则返回 true,否则返回 false。
注意: includes() 方法区分大小写。
示例1:
let str = "abc"
let result = str.includes("a")
// true
console.log(result);
示例2:
let str = "abc"
//在位置1开始查找"a"
let result = str.includes("a", 1)
// false
console.log(result);
3.8.lastIndexOf() 方法
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。
注意: 该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。
开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。
如果没有找到匹配字符串则返回 -1 。
**注意:**lastIndexOf() 方法是区分大小写的!
示例1:
let str = "abaac"
let result = str.lastIndexOf("a")
// 3
console.log(result);
示例2:
let str = "abaac"
//从位置1开始查找"a"
let result = str.lastIndexOf("a", 1)
// 0
console.log(result);
3.9.match() 方法
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
注意: match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
示例:
let str = "abaac"
let result = str.match(/a/g)
//[ 'a', 'a', 'a' ]
console.log(result);
3.10.repeat() 方法
repeat() 方法字符串复制指定次数。ES6
示例:
let str = "abc"
let result = str.repeat(3)
// abcabcabc
console.log(result);
3.11.replace() 方法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
该方法不会改变原始字符串。
示例1:
let str = "abc"
let result = str.replace("b", "d")
// adc
console.log(result);
示例2:
let str = "abc"
let result = str.replace(/b/g, "e")
// aec
console.log(result);
3.12.replaceAll() 方法
replaceAll() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串,该函数会替换所有匹配到的子字符串。
该方法不会改变原始字符串。
let str = "abbcb"
let result = str.replaceAll("b", "e")
// aeece
console.log(result);
3.13.search() 方法
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
如果没有找到任何匹配的子串,则返回 -1。
let str = "abbbc"
let result = str.search("b")
// 1
console.log(result);
3.14.slice() 方法
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。
start 参数字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推,如果是负数表示从尾部截取多少个字符串,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
end 参数如果为负数,-1 指字符串的最后一个字符的位置,-2 指倒数第二个字符,以此类推。
示例:
let str = "abbbc"
let result = str.slice(1, 3)
// bb
console.log(result);
3.15.split() 方法
split() 方法用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: split() 方法不改变原始字符串。
let str = "a b b b c"
let result = str.split(" ")
// [ 'a', 'b', 'b', 'b', 'c' ]
console.log(result);
3.16.startsWith() 方法
startsWith() 方法用于检测字符串是否以指定的子字符串开始。
如果是以指定的子字符串开头返回 true,否则 false。
startsWith() 方法对大小写敏感。
示例:
let str = "abc"
let result = str.startsWith("a")
// true
console.log(result);
3.17.substr() 方法
substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。
提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。
ECMAscript 没有对该方法进行标准化,因此反对使用它。
注意: substr() 方法不会改变源字符串。
示例:
let str = "abcde"
// cde
let result = str.substr(2, 3)
console.log(result);
3.18.substring() 方法
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
示例:
let str = "abcde"
let result = str.substring(1, 5)
// bcde
console.log(result);
3.19.toLowerCase() 方法
toLowerCase() 方法用于把字符串转换为小写。
示例:
let str = "ABC"
let result = str.toLowerCase()
// abc
console.log(result);
3.20.toUpperCase() 方法
toUpperCase() 方法用于把字符串转换为大写。
示例:
let str = "abc"
let result = str.toUpperCase()
// ABC
console.log(result);
3.21.trim() 方法
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
trim() 方法不会改变原始字符串。
trim() 方法不适用于 null, undefined, Number 类型。
示例:
let str = " abc "
let result = str.trim()
// abc
console.log(result);
3.22.toLocaleLowerCase() 方法
toLocaleLowerCase() 方法根据本地主机的语言环境把字符串转换为小写。
本地是根据浏览器的语言设置来判断的。
通常,该方法与 toLowerCase() 方法返回的结果相同,只有几种语言(如土耳其语)具有地方特有的大小写映射。
注意: toLocaleLowerCase() 方法没有改变原始字符串。
提示: 使用 toLocaleUpperCase()方法根据本地主机的语言将字符串转换为大写。
示例:
let str = "ABC"
let result = str.toLocaleLowerCase()
// abc
console.log(result);
3.23.valueOf() 方法
valueOf() 方法可返回 String 对象的原始值。
注意: valueOf() 方法通常由 JavaScript 在后台自动进行调用,而不是显式地处于代码中。
示例:
let str = "abc"
// abc
console.log(str.valueOf());
3.24.toString() 方法
toString() 方法返回一个表示 String 对象的值。
let str = "abc"
let result = str.toString()
// abc
console.log(result);