摘要
本文主要收录了常用的javascript的字符串操作函数,并附有较为详细的说明和代码样例,掌握之后能够处理大部分字符串问题。
查找
String.prototype.at(index: Number)
返回对应序号的字符串,可以为负数,负数则是从最后一个字符串开始查找。
js
const hello = 'hello';
console.log(hello.at(1)); // 'e'
console.log(hello.at(-1)); // 'o'
相比较于取最后几位字符串来说at
比较优雅直观;
js
const lengthWay = hello[hello.length - 2];
const atWay = hello.at(-2);
String.prototype.includes(searchString: String)
确定是否可以在一个字符串中找到另一个字符串,并根据情况返回 true
或 false
,includes()
方法执行区分大小写的搜索。
js
const sentence = 'The quick brown fox jumps over the lazy dog.';
const word = 'fox';
sentence.includes(word); // true
String.prototype.match(regex: RegExp)
检索字符串与正则表达式进行匹配的结果,返回匹配的数组,如果没有匹配的返回null。
js
const hello = 'hello';
const regex = new RegExp('l', 'g');
hello.match(regex) // ["l","l"]
String.prototype.search(regex: RegExp)
在 String 对象中执行正则表达式的搜索,寻找匹配项,返回匹配的起始index。
js
const hello = 'hello';
const regex = new RegExp('l', 'g');
console.log(hello.search(regex)) // 2
String.prototype.replace(pattern: RegExp | String, replacement: String)
replace() 方法返回一个新字符串,其中一个、多个或所有匹配的 pattern 被替换为 replacement。pattern 可以是字符串或 RegExp,replacement 可以是字符串或一个在每次匹配时调用的函数。如果 pattern 是字符串,则只会替换第一个匹配项。原始的字符串不会改变。
js
const hello = 'hello';
const regex = new RegExp('l', 'g');
console.log(hello.replace(regex, 'L')) // "heLLo"
console.log(hello.replace('l', 'L')) // "heLlo"
String.prototype.replaceAll(pattern, replacement)
跟 replace()
一样,只是会替换所有匹配的项目,就算是没用正则表达式。
String.prototype.startsWith(searchString: String, endIndex: Number)
判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false,startIndex 是指定开始计算的位置。
js
const str1 = 'Saturday';
console.log(str1.startsWith('Sat'));
// Expected output: true
console.log(str1.startsWith('Sat', 3));
// Expected output: false
String.prototype.endsWith(searchString: String, endIndex: Number)
用于判断一个字符串是否以指定字符串结尾,如果是则返回 true,否则返回 false,endIndex 是指定结束计算的位置。
js
const str1 = 'Cats are the best!';
console.log(str1.endsWith('best!'));
// Expected output: true
console.log(str1.endsWith('best', 17));
// Expected output: true
console.log(str1.endsWith('best', 5));
// Expected output: false
截取
String.prototype.slice(startIndex: Number, endIndex: Number)
提取字符串的一部分,并将其作为新字符串返回,不修改原始字符串。
js
const hello = 'hello';
console.log(hello.slice(1, 2))
console.log(hello.slice(2)) // 没有结束位置会截取到最后
console.log(hello.slice(-3)) // 可以为负数,从最后往前计算位置
console.log(hello.slice(-3, -1)) // startIndex 需要小于 endIndex 不然取不到任何值
String.prototype.trim()
从字符串的两端移除空白字符,并返回一个新的字符串,而不会修改原始字符串。
js
const greeting = ' Hello world! ';
console.log(greeting);
// Expected output: " Hello world! ";
console.log(greeting.trim());
// Expected output: "Hello world!";
String.prototype.trimStart()
从字符串的开头移除空白字符,并返回一个新的字符串,而不会修改原始字符串。
js
console.log(greeting.trimStart());
// Expected output: "Hello world! ";
String.prototype.trimEnd()
从字符串的开头移除空白字符,并返回一个新的字符串,而不会修改原始字符串。
js
console.log(greeting.trimEnd());
// Expected output: " Hello world!";
格式化
String.prototype.padStart(maxLength: Number, placeholder: String)
用另一个字符串填充当前字符串(如果需要会重复填充),直到达到给定的长度。填充是从当前字符串的开头开始的,maxLength 需要大于0,否则不会进行追加。
js
const str1 = '5';
console.log(str1.padStart(2, '0'));
// Expected output: "05"
console.log(str1.padStart(-1, '0'));
// Expected output: "5"
const fullNumber = '2034399002125581';
const last4Digits = fullNumber.slice(-4);
const maskedNumber = last4Digits.padStart(fullNumber.length, '*');
console.log(maskedNumber);
// Expected output: "************5581"
String.prototype.padEnd(maxLength: Number, placeholder: String)
用另一个字符串填充当前字符串(如果需要会重复填充),直到达到给定的长度。填充是从当前字符串的开头开始的,maxLength 如果小于当前字符串长度则不会进行追加。
js
const str1 = 'Breaded Mushrooms';
console.log(str1.padEnd(25, '.'));
// Expected output: "Breaded Mushrooms........"
console.log(str1.padEnd(5, '.'));
// Expected output: "Breaded Mushrooms"
const str2 = '200';
console.log(str2.padEnd(5));
// Expected output: "200 "
String.prototype.repeat(count: Number)
返回一个新字符串,其中包含指定数量的所调用的字符串副本,这些副本连接在一起。
js
const helloWorld3Times = `hello${' world'.repeat(3)}`;
console.log(helloWorld3Times); // "hello world world world"
String.prototype.toUpperCase()
将该字符串转换为大写形式,返回新字符串。
js
const hello = 'hello';
console.log(hello.toUpperCase()) // 'HELLO'
String.prototype.toLowerCase()
将该字符串转换为小写形式,返回新字符串。
js
const hello = 'HELLO';
console.log(hello.toLowerCase()) // 'hello'