字符串长度 字符串切片() 字符串子串() 字符串 substr() 字符串替换() 字符串替换全部() 字符串转大写() 字符串 toLowerCase() 字符串连接() |
字符串修剪() 字符串修剪开始() 字符串修剪结束() 字符串 padStart() 字符串 padEnd() 字符串 charAt() 字符串 charCodeAt() 字符串分割() |
字符串搜索方法将在下一章中介绍。
这个length
属性返回字符串的长度:
有 3 种方法可以提取字符串的一部分:
slice(start, end)
substring(start, end)
substr(start, length)
slice()
提取字符串的一部分并在新字符串中返回提取的部分。
该方法有 2 个参数:开始位置和结束位置(不包括结束位置)。
JavaScript 从零开始计算位置。
第一个位置是 0。
第二个位置是 1。
如果省略第二个参数,该方法将切出字符串的其余部分:
let text = "Apple, Banana, Kiwi";
let part = text.slice(7);
亲自试一试 »
如果参数为负数,则从字符串末尾开始计算位置:
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12);
亲自试一试 »
此示例从位置 -12 到位置 -6 切出字符串的一部分:
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12, -6);
亲自试一试 »
substring()
类似于slice()
。
不同之处在于,小于 0 的开始值和结束值被视为 0substring()
。
如果省略第二个参数,substring()
将切掉字符串的其余部分。
substr()
类似于slice()
。
区别在于第二个参数指定长度提取的部分。
如果省略第二个参数,substr()
将切掉字符串的其余部分。
如果第一个参数为负数,则位置从字符串末尾开始计算。
这个replace()
方法将指定值替换为字符串中的另一个值:
这个replace()
方法不会更改调用它的字符串。
这个replace()
方法返回一个新字符串。
这个replace()
方法替换只有第一个匹配
如果要替换所有匹配项,请使用设置了 /g 标志的正则表达式。请参阅下面的示例。
默认情况下,replace()
方法替换只有第一个匹配:
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace("Microsoft", "91xjr");
默认情况下,replace()
方法区分大小写。写入 MICROSOFT(大写)将不起作用:
要替换不区分大小写,请使用正则表达式与/i
标志(不敏感):
正则表达式不带引号编写。
要替换所有匹配项,请使用正则表达式与一个/g
标志(全局匹配):
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace(/Microsoft/g, "91xjr");
您将在本章中学到更多有关正则表达式的知识JavaScript 正则表达式。
2021年,JavaScript引入了字符串方法replaceAll()
:
这个replaceAll()
方法允许您指定正则表达式而不是要替换的字符串。
如果参数是正则表达式,则必须设置全局标志 (g),否则会抛出 TypeError。
字符串被转换为大写toUpperCase()
:
字符串转换为小写toLowerCase()
:
let text1 = "Hello World!"; // String
let text2 = text1.toLowerCase(); // text2 is text1 converted to lower
亲自试一试 »
concat()
连接两个或多个字符串:
这个concat()
可以使用方法来代替加号运算符。这两行的作用相同:
text = "Hello" + " " + "World!";
text = "Hello".concat(" ", "World!");
所有字符串方法都返回一个新字符串。他们不会修改原始字符串。
正式表示:
字符串是不可变的:字符串不能更改,只能替换。
这个trim()
方法删除字符串两侧的空格:
ECMAScript 2019添加了字符串方法trimStart()
到 JavaScript。
这个trimStart()
方法的工作原理就像trim()
,但仅删除字符串开头的空格。
JavaScript 字符串trimStart()
自 2020 年 1 月起所有现代浏览器均支持:
Chrome 66 | Edge 79 | Firefox 61 | Safari 12 | Opera 50 |
Apr 2018 | Jan 2020 | Jun 2018 | Sep 2018 | May 2018 |
ECMAScript 2019添加了字符串方法trimEnd()
到 JavaScript。
这个trimEnd()
方法的工作原理就像trim()
,但仅删除字符串末尾的空格。
JavaScript 字符串trimEnd()
自 2020 年 1 月起所有现代浏览器均支持:
Chrome 66 | Edge 79 | Firefox 61 | Safari 12 | Opera 50 |
Apr 2018 | Jan 2020 | Jun 2018 | Sep 2018 | May 2018 |
ECMAScript 2017向 JavaScript 添加了两个新的字符串方法:padStart()
和padEnd()
支持字符串开头和结尾的填充。
这个padStart()
方法从头开始填充字符串。
它用另一个字符串填充一个字符串(多次),直到达到给定长度。
用 "0" 填充字符串,直到达到长度 4:
let text = "5";
let padded = text.padStart(4,"0");
亲自试一试 »
用 "x" 填充字符串,直到达到长度 4:
let text = "5";
let padded = text.padStart(4,"x");
亲自试一试 »
这个padStart()
方法是一个字符串方法。
要填充数字,请先将数字转换为字符串。
请参阅下面的示例。
padStart()
是一个ECMAScript 2017特征。
所有现代浏览器都支持它:
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
padStart()
Internet Explorer 不支持。
这个padEnd()
方法从末尾填充字符串。
它用另一个字符串填充一个字符串(多次),直到达到给定长度。
let text = "5";
let padded = text.padEnd(4,"0");
亲自试一试 »
let text = "5";
let padded = text.padEnd(4,"x");
亲自试一试 »
这个padEnd()
方法是一个字符串方法。
要填充数字,请先将数字转换为字符串。
请参阅下面的示例。
padEnd()
是一个ECMAScript 2017特征。
所有现代浏览器都支持它:
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
padEnd()
Internet Explorer 不支持。
提取字符串字符有3种方法:
charAt(position)
charCodeAt(position)
这个charAt()
方法返回字符串中指定索引(位置)处的字符:
这个charCodeAt()
方法返回字符串中指定索引处的字符的 unicode:
该方法返回 UTF-16 代码(0 到 65535 之间的整数)。
ECMAScript 5 (2009) 允许对字符串进行属性访问 [ ]:
属性访问可能有点不可预料的:
如果您想将字符串作为数组使用,可以将其转换为数组。
可以使用以下命令将字符串转换为数组split()
方法:
text.split(",") // Split on commas
text.split(" ") // Split on spaces
text.split("|") // Split on pipe
亲自试一试 »
如果省略分隔符,则返回的数组将包含索引 [0] 中的整个字符串。
如果分隔符是"",则返回的数组将是单个字符的数组:
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!