substring()
字符串的截取可以使用substring()方法和slice()方法。其中substring()方法接受两个参数,第一个参数是起始位置,第二个参数是结束位置,截取的字符串不包括结束位置的字符。
let str = "Hello, World!";
let str2 = "卡布奇诺,拿铁,维也纳,摩卡,冰美式,库比卡,浓缩"
console.log(str.substring(1, 8)); //ello, W
console.log(str2.substring(5, 8)); //拿铁,
console.log(str2); //卡布奇诺,拿铁,维也纳,摩卡,冰美式,库比卡,浓缩
//substring(1, 8) 返回从下标1开始8结束(不包括8)的长度为7的子字符串。
slice()
slice()方法也接受两个参数,第一个参数是起始位置,第二个参数是结束位置,但是可以使用负数表示从后往前数的位置。返回一个新字符串,不会影响原始字符串。如果省略第二个参数,该方法会提取字符串的剩余部分。提取的字符串为[start, end)
长度的子字符串,其中起始位置包含第一个字符。
let str = "123456789";
console.log(str.slice(0, 5)); //12345
console.log(str.slice(2)); //3456789
console.log(str.slice(3, -2)); //4567
console.log(str); //123456789
let str2 = "给我来一杯卡布奇诺!";
console.log(str2.slice(0, 5)); //给我来一杯
console.log(str2.slice(2)); //来一杯卡布奇诺!
console.log(str2.slice(3, -2)); //一杯卡布奇
console.log(str2.slice(3, -4)); //一杯卡
console.log(str2); //给我来一杯卡布奇诺!
replace()
replace() 方法用于将指定的字符串或正则表达式匹配的部分替换为新的字符串,替换字符串中的第一个匹配项。
const str = "Hello, World! World!";
const newStr = str.replace("World", "JavaScript");
console.log(newStr); //Hello, JavaScript! World!
//将一个或多个空格替换成空字符
const str2 = "你 好 呀!"
const newStr2 = str2.replace(/\s+/g, "");
console.log(newStr2); //你好呀!
replace("World", "JavaScript")
将字符串中的第一个 "World"
替换为 "JavaScript"
。
正则表达式 /\s+/g
可以匹配所有连续的空格字符。其中,\s
表示空白字符,包括空格、制表符和换行符,+
表示匹配一个或多个。
replaceAll()
replaceAll() 方法是在 ES2021(ES12)中引入的,用于替换字符串中所有匹配的部分。
const str3 = "哎哟! 你干嘛啊啊啊!";
const newStr3 = str3.replaceAll("啊", "呀");
console.log(newStr3); //哎哟! 你干嘛呀呀呀!
const str4 = "你 好 呀!"
const newStr4 = str4.replaceAll(" ", "");
console.log(newStr4); //你好呀!
可以直接将字符串空格作为第一个参数,将空字符串作为第二个参数,这样可以把所有的空格字符替换为空字符。
trim()
trim() 方法去除字符串两端的空格,返回新的字符串。
let str = " 卡布奇诺 拿铁 维也纳 摩卡 冰美式 浓缩 "
console.log(str.trim()); //卡布奇诺 拿铁 维也纳 摩卡 冰美式 浓缩
console.log(str.trimStart()); //卡布奇诺 拿铁 维也纳 摩卡 冰美式 浓缩
console.log(str.trimEnd()); // 卡布奇诺 拿铁 维也纳 摩卡 冰美式 浓缩
trim()去掉了字符串开头和结尾的空格。trimStart()(trimLeft) 只删除字符串开头的空格,trimEnd()(trimRight) 只删除字符串结尾的空格。trimLeft()和trimRight()方法现已舍弃。
match()
match方法用于在一个字符串中查找匹配的子串,并返回一个数组,包含所有匹配的子串及其位置。
语法: string.match(regexp)
,其中,string是要匹配的字符串,regexp是一个正则表达式。
如果regexp没有全局标志g,则match()方法返回一个数组,该数组的第一个元素是匹配到的子串,后面的元素是正则表达式中的捕获组(如果有的话)。
如果regexp有全局标志g,则match()方法返回所有匹配到的子串组成的数组。如果没有匹配到任何子串,则返回null。
const str = "Hello, World!";
const matches = str.match(/l/g);
console.log(matches); //[ 'l', 'l', 'l' ]
//使用"/(l)(o)/g"正则表达式来查找字符串中所有的 "lo" 组合。
const str2 = "Hello, World!";
const matches2 = str2.match(/(l)(o)/g);
console.log(matches2); //[ 'lo' ]
//使用"/o/g"正则表达式来查找字符串中所有的小写字母 "o"。
const str3 = 'Hello, World!';
console.log(str3.match('o'));//['o', index: 4, input: 'Hello, World!', groups: undefined]
console.log(str3.match('l'));//['l', index: 2, input: 'Hello, World!', groups: undefined]
console.log(str3.match(/o/g)); //['o', 'o']
split()
split() 方法将字符串按指定的分隔符拆分成数组。
//s.split("-")使用-作为分隔符将字符串拆分成数组。
const s = "卡布奇诺-拿铁-维也纳-摩卡-冰美式-浓缩";
const arr = s.split("-");
console.log(arr); //[ '卡布奇诺', '拿铁', '维也纳', '摩卡', '冰美式', '浓缩' ]
const str = "Hello World!";
console.log(str.split(/\s+/));