目录

JavaScript 字符串方法

字符串长度
字符串切片()
字符串子串()
字符串 substr()
字符串替换()
字符串替换全部()
字符串转大写()
字符串 toLowerCase()
字符串连接()
字符串修剪()
字符串修剪开始()
字符串修剪结束()
字符串 padStart()
字符串 padEnd()
字符串 charAt()
字符串 charCodeAt()
字符串分割()

笔记

字符串搜索方法将在下一章中介绍。


JavaScript 字符串长度

这个length属性返回字符串的长度:

示例

let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let length = text.length;
亲自试一试 »

提取字符串部分

有 3 种方法可以提取字符串的一部分:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

JavaScript 字符串切片()

slice()提取字符串的一部分并在新字符串中返回提取的部分。

该方法有 2 个参数:开始位置和结束位置(不包括结束位置)。

示例

切出字符串中从位置 7 到位置 13 的一部分:

let text = "Apple, Banana, Kiwi";
let part = text.slice(7, 13);
亲自试一试 »

笔记

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);
亲自试一试 »


JavaScript 字符串子串()

substring()类似于slice()

不同之处在于,小于 0 的开始值和结束值被视为 0substring()

示例

let str = "Apple, Banana, Kiwi";
let part = str.substring(7, 13);
亲自试一试 »

如果省略第二个参数,substring()将切掉字符串的其余部分。


JavaScript 字符串 substr()

substr()类似于slice()

区别在于第二个参数指定长度提取的部分。

示例

let str = "Apple, Banana, Kiwi";
let part = str.substr(7, 6);
亲自试一试 »

如果省略第二个参数,substr()将切掉字符串的其余部分。

示例

let str = "Apple, Banana, Kiwi";
let part = str.substr(7);
亲自试一试 »

如果第一个参数为负数,则位置从字符串末尾开始计算。

示例

let str = "Apple, Banana, Kiwi";
let part = str.substr(-4);
亲自试一试 »

替换字符串内容

这个replace()方法将指定值替换为字符串中的另一个值:

示例

let text = "Please visit Microsoft!";
let newText = text.replace("Microsoft", "91xjr");
亲自试一试 »

笔记

这个replace()方法不会更改调用它的字符串。

这个replace()方法返回一个新字符串。

这个replace()方法替换只有第一个匹配

如果要替换所有匹配项,请使用设置了 /g 标志的正则表达式。请参阅下面的示例。

默认情况下,replace()方法替换只有第一个匹配:

示例

let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace("Microsoft", "91xjr");

亲自试一试 »

默认情况下,replace()方法区分大小写。写入 MICROSOFT(大写)将不起作用:

示例

let text = "Please visit Microsoft!";
let newText = text.replace("MICROSOFT", "91xjr");

亲自试一试 »

要替换不区分大小写,请使用正则表达式/i标志(不敏感):

示例

let text = "Please visit Microsoft!";
let newText = text.replace(/MICROSOFT/i, "91xjr");

亲自试一试 »

笔记

正则表达式不带引号编写。

要替换所有匹配项,请使用正则表达式与一个/g标志(全局匹配):

示例

let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace(/Microsoft/g, "91xjr");

亲自试一试 »

笔记

您将在本章中学到更多有关正则表达式的知识JavaScript 正则表达式


JavaScript 字符串 ReplaceAll()

2021年,JavaScript引入了字符串方法replaceAll()

示例

text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");
亲自试一试 »

这个replaceAll()方法允许您指定正则表达式而不是要替换的字符串。

如果参数是正则表达式,则必须设置全局标志 (g),否则会抛出 TypeError。

示例

text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
亲自试一试 »

笔记

replaceAll()是一个ES2021特征。

replaceAll()不适用于 Internet Explorer。


转换为大小写

字符串被转换为大写toUpperCase()

字符串转换为小写toLowerCase()


JavaScript 字符串 toUpperCase()

示例

let text1 = "Hello World!";
let text2 = text1.toUpperCase();
亲自试一试 »

JavaScript 字符串 toLowerCase()

示例

let text1 = "Hello World!";       // String
let text2 = text1.toLowerCase();  // text2 is text1 converted to lower
亲自试一试 »

JavaScript 字符串 concat()

concat()连接两个或多个字符串:

示例

let text1 = "Hello";
let text2 = "World";
let text3 = text1.concat(" ", text2);
亲自试一试 »

这个concat()可以使用方法来代替加号运算符。这两行的作用相同:

示例

text = "Hello" + " " + "World!";
text = "Hello".concat(" ", "World!");

笔记

所有字符串方法都返回一个新字符串。他们不会修改原始字符串。

正式表示:

字符串是不可变的:字符串不能更改,只能替换。


JavaScript 字符串修剪()

这个trim()方法删除字符串两侧的空格:

示例

let text1 = "      Hello World!      ";
let text2 = text1.trim();
亲自试一试 »

JavaScript 字符串修剪开始()

ECMAScript 2019添加了字符串方法trimStart()到 JavaScript。

这个trimStart()方法的工作原理就像trim(),但仅删除字符串开头的空格。

示例

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();
亲自试一试 »

JavaScript 字符串trimStart()自 2020 年 1 月起所有现代浏览器均支持:

Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
Apr 2018 Jan 2020 Jun 2018 Sep 2018 May 2018

JavaScript 字符串修剪结束()

ECMAScript 2019添加了字符串方法trimEnd()到 JavaScript。

这个trimEnd()方法的工作原理就像trim(),但仅删除字符串末尾的空格。

示例

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();
亲自试一试 »

JavaScript 字符串trimEnd()自 2020 年 1 月起所有现代浏览器均支持:

Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
Apr 2018 Jan 2020 Jun 2018 Sep 2018 May 2018

JavaScript 字符串填充

ECMAScript 2017向 JavaScript 添加了两个新的字符串方法:padStart()padEnd()支持字符串开头和结尾的填充。


JavaScript 字符串 padStart()

这个padStart()方法从头开始填充字符串。

它用另一个字符串填充一个字符串(多次),直到达到给定长度。

示例

用 "0" 填充字符串,直到达到长度 4:

let text = "5";
let padded = text.padStart(4,"0");
亲自试一试 »

用 "x" 填充字符串,直到达到长度 4:

let text = "5";
let padded = text.padStart(4,"x");
亲自试一试 »

笔记

这个padStart()方法是一个字符串方法。

要填充数字,请先将数字转换为字符串。

请参阅下面的示例。

示例

let numb = 5;
let text = numb.toString();
let padded = text.padStart(4,"0");
亲自试一试 »

浏览器支持

padStart()是一个ECMAScript 2017特征。

所有现代浏览器都支持它:

Chrome Edge Firefox Safari Opera
Yes Yes Yes Yes Yes

padStart()Internet Explorer 不支持。


JavaScript 字符串 padEnd()

这个padEnd()方法从末尾填充字符串。

它用另一个字符串填充一个字符串(多次),直到达到给定长度。

示例

let text = "5";
let padded = text.padEnd(4,"0");
亲自试一试 »
let text = "5";
let padded = text.padEnd(4,"x");
亲自试一试 »

笔记

这个padEnd()方法是一个字符串方法。

要填充数字,请先将数字转换为字符串。

请参阅下面的示例。

示例

let numb = 5;
let text = numb.toString();
let padded = text.padEnd(4,"0");
亲自试一试 »

浏览器支持

padEnd()是一个ECMAScript 2017特征。

所有现代浏览器都支持它:

Chrome Edge Firefox Safari Opera
Yes Yes Yes Yes Yes

padEnd()Internet Explorer 不支持。


提取字符串字符

提取字符串字符有3种方法:

  • charAt(position)
  • charCodeAt(position)
  • 属性访问 [ ]

JavaScript 字符串 charAt()

这个charAt()方法返回字符串中指定索引(位置)处的字符:

示例

let text = "HELLO WORLD";
let char = text.charAt(0);
亲自试一试 »

JavaScript 字符串 charCodeAt()

这个charCodeAt()方法返回字符串中指定索引处的字符的 unicode:

该方法返回 UTF-16 代码(0 到 65535 之间的整数)。

示例

let text = "HELLO WORLD";
let char = text.charCodeAt(0);
亲自试一试 »

物业使用

ECMAScript 5 (2009) 允许对字符串进行属性访问 [ ]:

示例

let text = "HELLO WORLD";
let char = text[0];
亲自试一试 »

笔记

属性访问可能有点不可预料的:

  • 它使字符串看起来像数组(但事实并非如此)
  • 如果未找到字符,[ ] 返回 undefined,而 charAt() 返回空字符串。
  • 它是只读的。 str[0] = "A" 没有给出错误(但不起作用!)

示例

let text = "HELLO WORLD";
text[0] = "A";    // Gives no error, but does not work
亲自试一试 »

将字符串转换为数组

如果您想将字符串作为数组使用,可以将其转换为数组。

JavaScript 字符串 split()

可以使用以下命令将字符串转换为数组split()方法:

示例

text.split(",")    // Split on commas
text.split(" ")    // Split on spaces
text.split("|")    // Split on pipe
亲自试一试 »

如果省略分隔符,则返回的数组将包含索引 [0] 中的整个字符串。

如果分隔符是"",则返回的数组将是单个字符的数组:

示例

text.split("")
亲自试一试 »

完整的字符串参考

有关完整的字符串参考,请访问我们的:

完整的 JavaScript 字符串参考.

该参考包含所有字符串属性和方法的描述和示例。

通过练习测试一下

练习:

将文本转换为大写文本:

let txt = "Hello World!";
txt = txt.;

开始练习