String 对象用于处理文本(字符串)。
String 对象创建方法: new String()。
一个字符串用于存储一系列字符就像 "John Doe".
一个字符串可以使用单引号或双引号:
- var carname="Volvo XC60";
- var carname='Volvo XC60';
你使用位置(索引)可以访问字符串中任何的字符:
var character=carname[7];
字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。
你可以在字符串中使用引号,如下实例:
- var answer="It's alright";
- var answer="He is called 'Johnny'";
- var answer='He is called "Johnny"';
或者你可以在字符串中使用转义字符(\)使用引号:
- var answer='It\'s alright';
- var answer="He is called \"Johnny\"";
字符串(String)使用内置属性 length 来计算字符串的长度:
- var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- var sln = txt.length;
字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置:
- var str="Hello world, welcome to the universe.";
- var n=str.indexOf("welcome");
如果没找到对应的字符函数返回-1
lastIndexOf() 方法在字符串末尾开始查找字符串出现的位置。
match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符。
- var str="Hello world!";
- document.write(str.match("world") + "
"); - document.write(str.match("World") + "
"); - document.write(str.match("world!"));
replace() 方法在字符串中用某些字符替换另一些字符。
- str="Please visit Microsoft!"
- var n=str.replace("Microsoft","Runoob");
字符串大小写转换使用函数 toUpperCase() / toLowerCase():
- var txt="Hello World!"; // String
- var txt1=txt.toUpperCase(); // txt1 文本会转换为大写
- var txt2=txt.toLowerCase(); // txt2 文本会转换为小写
1.字符串使用split()函数转为数组:
- txt="a,b,c,d,e" // String
- txt.split(","); // 使用逗号分隔
- txt.split(" "); // 使用空格分隔
- txt.split("|"); // 使用竖线分隔
2.展开运算符 ( ...) 允许在需要多个元素(如数组文字)的地方扩展诸如字符串之类的可迭代对象。
这是将字符串扩展为字符数组的示例。正确处理采用两个代码单元的字符。
- const text = "abc????";
- const chars = [ ...text ];
- console.log(chars);
- //["a", "b", "c", "????"]
3.解构赋值语法可以将数组或可迭代对象中的值解包为不同的变量。
在解构数组或可迭代对象时,我们可以使用 rest 模式将其剩余部分提取到单个变量中。
- const text = "abc????";
- const [ ...chars ] = text;
- console.log(chars);
- //["a", "b", "c", "????"]
4.Array.from辅助创建从阵列状或迭代的对象的新数组。字符串既可迭代又类似于数组,因此,可以成功地将其转换为字符数组。
- const text = "abc????";
- const chars = Array.from(text);
- console.log(chars);
- //["a", "b", "c", "????"]
重点说明
该split方法可能是将字符串转换为字符数组的常用方法,但它不处理采用两个代码单元的字符。
我们可以使用对象字面量中的扩展运算符、使用数组解构赋值语法中的剩余模式或Array.from实用程序将字符串正确转换为字符数组。
Javascript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊符号。
查看如下 JavaScript 代码:
- var txt="We are the so-called "Vikings" from the north.";
- document.write(txt);
在JavaScript中,字符串的开始和停止使用单引号或双引号。这意味着,上面的字符串将被切成: We are the so-called
解决以上的问题可以使用反斜线来转义引号:
- var txt="We are the so-called \"Vikings\" from the north.";
- document.write(txt);
JavaScript将输出正确的文本字符串:We are the so-called "Vikings" from the north.
下表列出其他特殊字符,可以使用反斜线转义特殊字符:

原始值字符串,如 "John", 没有属性和方法(因为他们不是对象)。
原始值可以使用 JavaScript 的属性和方法,因为 JavaScript 在执行方法和属性时可以把原始值当作对象。
| 属性 | 描述 |
|---|---|
| constructor | 对创建该对象的函数的引用 |
| length | 字符串的长度 |
| prototype | 允许您向对象添加属性和方法 |
| 方法 | 描述 |
|---|---|
| charAt() | 返回在指定位置的字符 |
| chartCodeAt() | 返回在指定的位置的字符的Unicode编码 |
| concat() | 连接两个或更多字符串,并返回新的字符串 |
| endsWith() | 判断当前字符串是否是以指定的字符串结尾的(区分大小写) |
| fromCharCode() | 将Unicode编码转为字符 |
| indexOf() | 返回某个指定的字符串值在字符串中首次出现的位置 |
| includes() | 查找字符串中是否包含指定的子字符串 |
| lastIndexOf() | 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置 |
| match() | 查找找到一个或多个正则表达式的匹配 |
| repeat() | 复制字符串指定次数,并将它们连接在一起返回 |
| replace() | 在字符串中查找匹配的子串,并替换与之匹配的子串(不能识别正则表达式) |
| replaceAll() | 在字符串中查找匹配的子串,并替换与正则表达式匹配的所有子串 |
| search() | 查找与正则表达式相匹配的值 |
| slice() | 提取字符串的片段,并在新的字符串中返回被提取的部分 |
| split() | 把字符串分割为字符串数组 |
| startsWith() | 查看字符串是否以指定的子字符串开头 |
| substr() | 从开始索引号提取字符串中指定数目的字符 |
| substring() | 提取字符串中两个指定的索引号之间的字符 |
| toLowerCase() | 把字符串转换为小写 |
| toUpperCase() | 把字符串转换为大写 |
| trim() | 去除字符串两边的空白 |
| toLocaleLowerCase() | 根据本地主机的语言环境把字符串转换为小写 |
| toLocaleUpperCase() | 根据本地主机的语言环境把字符串转换为大写 |
| valueOf() | 返回某个字符串对象的原始值 |
| toString() | 返回一个字符串 |