1. JavaScript字符串概述
JavaScript中的字符串是一组字符的序列,可以使用单引号、双引号或反引号表示。字符串可用于表示文本和数据。
var str1 = "JavaScript字符串";
var str2 = 'JavaScript字符串';
var str3 = `JavaScript字符串`;
1.1 字符串常用属性
字符串是一种基本的 JavaScript 数据类型,JavaScript 有 3 个原始的引用类型,即 String、Number 和 Boolean 类型。
String 类型有两个用于获取字符串长度的属性:length 和 size
var str = "JavaScript字符串";
console.log(str.length); // 10
console.log(str.size); // undefined
String 类型还有一个原型属性 constructor,它返回创建字符串实例的函数(构造函数)引用。
var str = "JavaScript字符串";
console.log(str.constructor); // function String() {[native code]}
1.2 字符串常用方法
JavaScript 字符串提供很多方便的方法来操作字符串,下面将详细介绍常用的字符串方法。
2. 字符串常用方法详解
2.1 字符串的截取和拼接
JavaScript提供了多种截取和拼接字符串的方法,使我们在开发中更加方便地处理字符串类型的数据。
2.1.1 截取字符串 substr()
substr() 方法用于截取字符串中指定位置的子字符串。
var str = "JavaScript字符串";
console.log(str.substr(0,4)); // "Java"
console.log(str.substr(13)); // "串"
该函数的第一个参数表示起始下标,第二个表示截取的长度,如果省略第二个参数,则表示截取到字符串末尾。
2.1.2 截取字符串 slice()
slice() 方法用于截取字符串中指定位置的子字符串。
var str = "JavaScript字符串";
console.log(str.slice(0,4)); // "Java"
console.log(str.slice(-6)); // "字符串"
该函数的第一个参数表示起始下标,第二个表示截取终止下标,如果省略第二个参数,则表示截取到字符串末尾。如果参数为负数,会从字符串的结尾开始计算。
2.1.3 字符串拼接 concat()
concat() 方法用于将多个字符串拼接成一个字符串。
var str1 = "JavaScript";
var str2 = "字符串";
console.log(str1.concat(str2)); // "JavaScript字符串"
该函数接受多个字符串参数,如果需要拼接多个字符串,使用 + 号操作符即可。
var str1 = "JavaScript";
var str2 = "字符串";
console.log(str1 + str2); // "JavaScript字符串"
2.2 字符串的查找和替换
我们可以使用 indexOf()、lastIndexOf()、replace()、match()、search() 方法来查找和替换字符串中的某些字符。
2.2.1 indexOf() 方法
indexOf() 方法用于查找字符串中某个子字符串的匹配。
var str = "JavaScript字符串";
console.log(str.indexOf("Script")); // 4
console.log(str.indexOf("java")); // -1
如果没找到指定的子字符串,则该方法返回 -1。
2.2.2 lastIndexOf() 方法
lastIndexOf() 方法也是用于查找字符串中某个子字符串的匹配,不同的是 lastIndexOf() 是从字符串的尾部开始查找。
var str = "aaaaabaaaa";
console.log(str.lastIndexOf("a")); // 9
console.log(str.lastIndexOf("b")); // 5
如果没找到指定的子字符串,则该方法返回 -1。
2.2.3 replace() 方法
replace() 方法用于替换字符串中的某个子字符串。
var str = "JavaScript字符串";
console.log(str.replace("字符串", "编程语言")); // "JavaScript编程语言"
该方法接受两个参数,第一个参数是需要被替换的子字符串,第二个参数是用于替换的新字符串。该方法只会替换第一个匹配的子字符串。如果想替换所有匹配的子字符串,可以使用正则表达式。
2.2.4 match() 方法
match() 方法用于在字符串中查找匹配的字符或字符集合。
var str = "JavaScript字符串";
console.log(str.match("Script")); // ["Script"]
console.log(str.match(/[aeiou]/gi)); // ["a","i","a","i"]
match() 方法接受一个参数,可以是正则表达式,也可以是一个字符串。match() 方法返回一个数组,数组中的元素为匹配到的字符或字符集合。
2.2.5 search() 方法
search() 方法用于查找字符串中的指定字符或字符集合并返回其位置。
var str = "JavaScript字符串";
console.log(str.search("Script")); // 4
console.log(str.search(/[aeiou]/)); // 1
该方法接受一个参数,可以是正则表达式,也可以是一个字符串。如果没找到,则返回 -1。
2.3 字符串的大小写转换
我们可以使用 toUpperCase() 和 toLowerCase() 方法将字符串的大小写进行转换。
var str = "JavaScript字符串";
console.log(str.toUpperCase()); // "JAVASCRIPT字符串"
console.log(str.toLowerCase()); // "javascript字符串"
上面两个方法分别将字符串转换为大写和小写,其中 toUpperCase() 方法不会影响原始字符串,而是返回一个新的大写字符串,同理 toLowerCase() 方法也是如此。
2.4 字符串的切割和分割
我们可以使用 split() 方法将一个字符串切分成一个数组,或使用 slice() 方法将一个字符串分割成多个子字符串。
2.4.1 split() 方法
split() 方法用于将字符串分割成一个数组。该函数接受两个参数,第一个参数为字符串分割的基准点(可以是一个正则表达式或一个字符串),第二个参数为数组的最大长度。
var str = "JavaScript字符串";
console.log(str.split("")); // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t", "字", "符", "串"]
console.log(str.split("字符")); // ["JavaScript", "串"]
2.4.2 slice() 方法
slice() 方法用于将一个字符串分割成多个子字符串。该函数接受两个参数,第一个参数为起始下标,第二个参数为结束下标(不包括该下标对应的字符)。
var str = "JavaScript字符串";
console.log(str.slice(0,4)); // "Java"
console.log(str.slice(4,10)); // "Script"
console.log(str.slice(-6)); // "字符串"
2.5 字符串的去除空格
我们可以使用 trim() 方法去除字符串前后的空格。
var str = " JavaScript 字符串 ";
console.log(str.trim()); // "JavaScript 字符串"
trim() 方法只去除字符串前后的空格,不影响字符串中间的空格。