JavaScript 有效的字符串方法
- 本文内容部分截取自该网站,不同部分则为本人笔记。
获得字符串的长度
let browserType = 'mozilla';
browserType.length;
用处
- 检索特定字符串字符
// 检索字符串最后一个字符
browserType[browserType.length-1];
在字符串中查找子字符串
找到字符串的位置
-
有时候你会想要找出一个较小的字符串是否存在于一个较大的字符串中(我们通常会说一个字符串中存在一个子字符串)。这可以使用indexOf()方法来完成,该方法需要一个parameter (en-US) — 你想要搜索的子字符串。
-
indexOf()方法用于在字符串中查找指定子字符串的第一次出现的位置。如果找到子字符串,indexOf()方法将返回该子字符串首次出现的位置的索引(从0开始计数)。如果没有找到子字符串,indexOf()方法将返回-1。
比如:
const str = 'I love Christmas! Christmas is my favorite holiday.';
const index = str.indexOf('Christmas');
console.log(index); // 输出: 7
-
在这个例子中,str是一个包含字符 'I love Christmas! Christmas is my favorite holiday.' 的常量。我们使用indexOf('Christmas') 方法在str中查找 'Christmas' 子字符串,结果返回7,表示 'Christmas' 子字符串首次出现的位置的索引为7。
-
如果您想查找子字符串后面出现的位置,可以为indexOf()方法提供一个可选的第二个参数,表示从字符串的哪个位置开始搜索。例如:
const nextIndex = str.indexOf('Christmas', index + 1);
console.log(nextIndex); // 输出: 19
在这个例子中,我们使用indexOf('Christmas', index + 1)方法从上一次找到'Christmas'的位置后继续查找。结果返回19,表示'Christmas'子字符串第二次出现的位置的索引为19。
判断是否包含特定子字符串
在JavaScript中,要判断一个字符串是否包含另一个字符串,可以使用includes()方法。includes()方法会检查一个字符串是否在另一个字符串中出现,如果出现则返回true,否则返回false。下面是一个例子:
const str = 'Hello, world!';
const searchString1 = 'world';
const searchString2 = 'example';
console.log(str.includes(searchString1)); // 输出: true
console.log(str.includes(searchString2)); // 输出: false
在这个例子中,str是一个包含字符串'Hello, world!'的常量。我们定义了两个搜索字符串:searchString1为'world',searchString2为'example'。然后,我们使用includes()方法检查str是否包含这两个搜索字符串。结果显示str包含searchString1,但不包含searchString2。
截取子字符串的方法
当你知道字符串中的子字符串开始的位置,以及想要结束的字符时,slice()可以用来提取 它。尝试以下:
browserType.slice(0,3);
这时返回"moz"——第一个参数是开始提取的字符位置,第二个参数是提取的最后一个字符的后一个位置。所以提取从第一个位置开始,直到但不包括最后一个位置。(此例中)你也可以说第二个参数等于被返回的字符串的长度。
此外,如果您知道要在某个字符之后提取字符串中的所有剩余字符,则不必包含第二个参数,而只需要包含要从中提取的字符位置 字符串中的其余字符。尝试以下:
browserType.slice(2);
这返回“zilla” —— 这是因为 2 的字符位置是字母 z,并且因为没有包含第二个参数,所以返回的子字符串是字符串中的所有剩余字符。
转换大小写
字符串方法toLowerCase()和toUpperCase()字符串并将所有字符分别转换为小写或大写。例如,如果要在将数据存储在数据库中之前对所有用户输入的数据进行规范化,这可能非常有用。
toLowerCase()方法:将字符串中的所有大写字母转换为小写字母。
const str = 'Hello, World!';
const lowerCaseStr = str.toLowerCase();
console.log(lowerCaseStr); // 输出: 'hello, world!'
toUpperCase()方法:将字符串中的所有小写字母转换为大写字母。
const str = 'Hello, World!';
const upperCaseStr = str.toUpperCase();
console.log(upperCaseStr); // 输出: 'HELLO, WORLD!'
在这两个例子中,str是一个包含字符串'Hello, World!'的常量。我们分别使用toLowerCase()和toUpperCase()方法将字符串转换为全小写和全大写形式,并将结果分别存储在lowerCaseStr和upperCaseStr常量中。
替换字符串的某部分
replace()方法是JavaScript中的一个字符串方法,它用于在字符串中查找与指定模式匹配的子字符串,并将其替换为另一个字符串。这个方法返回一个新的字符串,原始字符串不会被修改。
replace()方法的基本语法如下:
str.replace(regexp|substr, newSubstr|function)
参数说明:
- regexp:一个正则表达式对象。如果提供了这个参数,replace()方法会将与这个正则表达式匹配的子字符串替换为新的子字符串。
- substr:一个字符串,表示要在str中查找并替换的子字符串。
- newSubstr:一个字符串,用于替换找到的匹配子字符串。在这个字符串中,可以使用特殊的替换模式(例如$1、$2等)引用正则表达式中的捕获组。
- function:一个函数,用于动态地生成替换字符串。这个函数会接收匹配到的子字符串、捕获组(如果有)、匹配的位置和原始字符串作为参数。函数的返回值将用作替换字符串。
下面是一些使用replace()方法的例子:
- 使用字符串替换字符串:
const str = 'Hello, world!';
const newStr = str.replace('world', 'JavaScript');
console.log(newStr); // 输出: 'Hello, JavaScript!'
- 使用正则表达式替换字符串(只替换第一个匹配项):
const str = 'Apple, Banana, apple, banana';
const newStr = str.replace(/apple/i, 'Orange');
console.log(newStr); // 输出: 'Orange, Banana, apple, banana'
- 使用正则表达式替换字符串(替换所有匹配项):
const str = 'Apple, Banana, apple, banana';
const newStr = str.replace(/apple/ig, 'Orange');
console.log(newStr); // 输出: 'Orange, Banana, Orange, banana'
- 使用函数动态生成替换字符串:
const str = 'I have 3 apples and 5 bananas.';
const newStr = str.replace(/\d+/g, (match) => parseInt(match) * 2);
console.log(newStr); // 输出: 'I have 6 apples and 10 bananas.'
拆分字符串split()
split()方法是JavaScript中的一个字符串方法,用于将字符串按照指定的分隔符拆分成一个数组。拆分后的每个数组元素都是原始字符串中分隔符之间的子字符串。
split()方法的基本语法如下:
str.split([separator[, limit]])
参数说明:
-
separator(可选):一个字符串或正则表达式对象,用于指定字符串的分隔符。如果没有提供这个参数或者参数为undefined,则整个字符串会被当作一个数组元素返回。
-
limit(可选):一个正整数,表示要返回的数组元素的最大数量。如果提供了这个参数,split()方法将仅返回最多limit个元素的数组。
以下是使用split()方法的一些示例:
- 使用字符串作为分隔符:
const str = 'Hello, world! Welcome to JavaScript.';
const words = str.split(' ');
console.log(words); // 输出: ['Hello,', 'world!', 'Welcome', 'to', 'JavaScript.']
- 使用正则表达式作为分隔符:
const str = 'apple,banana,orange;grape:watermelon';
const fruits = str.split(/[,;:]/);
console.log(fruits); // 输出: ['apple', 'banana', 'orange', 'grape', 'watermelon']
- 使用分隔符并限制返回数组的元素个数:
const str = 'apple,banana,orange,grape,watermelon';
const fruits = str.split(',', 3);
console.log(fruits); // 输出: ['apple', 'banana', 'orange']
拼接字符串join()
join()方法是JavaScript中的一个数组方法,用于将数组中的所有元素连接成一个字符串。在连接过程中,可以使用指定的分隔符将数组元素分隔开。
join()方法的基本语法如下:
arr.join([separator])
参数说明:
- separator(可选):一个字符串,用于指定连接数组元素时的分隔符。如果没有提供这个参数,将使用逗号(,)作为默认分隔符。
以下是使用join()方法的一些示例:
- 使用默认分隔符(逗号):
const fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
const str = fruits.join();
console.log(str); // 输出: 'apple,banana,orange,grape,watermelon'
- 使用自定义分隔符:
const fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
const str = fruits.join(' - ');
console.log(str); // 输出: 'apple - banana - orange - grape - watermelon'
- 使用空字符串作为分隔符:
const fruits = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
const str = fruits.join('');
console.log(str); // 输出: 'applebananaorangegrapewatermelon'
正则表达式的使用方法
关于JS中正则表达式的使用方法,可以看这里,