JS字符串方法

文章目录


1.length:返回字符串的长度。

const str = "Hello";
console.log(str.length); // 输出5

2.charAt(index):返回指定索引位置的字符。

const str = "Hello";
console.log(str.charAt(1)); // 输出"e"

3.concat(str1, str2, …):将两个或多个字符串连接起来。

const str1 = "Hello";
const str2 = " World";
console.log(str1.concat(str2)); // 输出"Hello World"

4.indexOf(searchValue, startIndex):返回指定值在字符串中第一次出现的位置。

const str = "Hello World";
console.log(str.indexOf("o")); // 输出4

5.lastIndexOf(searchValue, startIndex):返回指定值在字符串中最后一次出现的位置。

const str = "Hello World";
console.log(str.lastIndexOf("o")); // 输出7

6.toUpperCase():将字符串转换为大写。

const str = "hello";
console.log(str.toUpperCase()); // 输出"HELLO"

7.toLowerCase():将字符串转换为小写。

const str = "HELLO";
console.log(str.toLowerCase()); // 输出"hello"

8.slice(startIndex, endIndex):提取字符串的一部分。

const str = "Hello World";
console.log(str.slice(6)); // 输出"World"

9.substring(startIndex, endIndex):提取字符串的一部分。

const str = "Hello World";
console.log(str.substring(0, 5)); // 输出"Hello"

10.substr(startIndex, length):从指定位置开始,截取指定长度的字符串。

const str = "Hello World";
console.log(str.substr(6, 5)); // 输出"World"

11.replace(searchValue, replaceValue):替换字符串中的指定值。

const str = "Hello World";
console.log(str.replace("World", "Universe")); // 输出"Hello Universe"

12.split(separator, limit):将字符串分割成子字符串数组。

const str = "apple,banana,orange";
console.log(str.split(",")); // 输出["apple", "banana", "orange"]

13.trim():去除字符串两端的空格。

const str = "  Hello World  ";
console.log(str.trim()); //输出"Hello World"

14.startsWith(searchValue, position):判断字符串是否以指定值开头。

const str = "Hello World";
console.log(str.startsWith("Hello")); // 输出true

15.endsWith(searchValue, position):判断字符串是否以指定值结尾。

const str = "Hello World";
console.log(str.endsWith("World")); // 输出true

16.includes(searchValue, position):判断字符串是否包含指定值。

const str = "Hello World";
console.log(str.includes("World")); // 输出true

17.charCodeAt(index):返回指定索引位置的字符的Unicode值。

const myStr = "hello";
for (let i = 0; i < myStr.length; i++) {
  const charCode = myStr.charCodeAt(i);
  console.log(`字符: ${myStr[i]}, Unicode 编码: ${charCode}`);
}
// 输出
//字符: h, Unicode 编码: 104
//字符: e, Unicode 编码: 101
//字符: l, Unicode 编码: 108
//字符: l, Unicode 编码: 108
//字符: o, Unicode 编码: 111

18.codePointAt(index):返回指定索引位置的字符的Unicode码点。

const str = "Hello";
for (let i = 0; i < str.length; i++) {
  const codePoint = str.codePointAt(i);
  console.log(`索引 ${i}: 码点 ${codePoint}`);
}
// 输出
//索引 0: 码点 72
//索引 1: 码点 101
//索引 2: 码点 108
//索引 3: 码点 108
//索引 4: 码点 111

19.localeCompare(compareString):比较两个字符串的排序顺序。

const str1 = "apple";
const str2 = "banana";
const str3 = "apple";

// 比较 str1 和 str2
let comparison = str1.localeCompare(str2);
console.log(comparison); // 输出一个负数,因为 "apple" 在排序上位于 "banana" 之前

// 比较 str1 和 str3
comparison = str1.localeCompare(str3);
console.log(comparison); // 输出 0,因为 "apple" 和 "apple" 是相同的

// 比较 str2 和 str1
comparison = str2.localeCompare(str1);
console.log(comparison); // 输出一个正数,因为 "banana" 在排序上位于 "apple" 之后

20.match(regexp):在字符串中匹配正则表达式。

const str = "Come on, you can do it";
const regex = /yo/g; // 正则表达式,匹配 "ain" 这个子字符串,'g' 表示全局搜索,即查找所有匹配项

const result = str.match(regex);
console.log(result); // 输出['yo']
// 如果没有匹配项,match() 返回 null
const str2 = "Hello, world!";
const regex2 = /xyz/; // 正则表达式,匹配 "xyz" 这个子字符串

const result2 = str2.match(regex2);
console.log(result2); // 输出null

21.normalize(form):标准化字符串的Unicode表示形式。

const str = "é"; // 这是一个带有重音符号的字符

// 转换为 NFC 形式(默认形式)
const nfcStr = str.normalize('NFC');
console.log(nfcStr); // 输出: "é"

// 转换为 NFD 形式
const nfdStr = str.normalize('NFD');
console.log(nfdStr); // 输出: "é"

// 转换为 NFKC 形式
const nfkcStr = str.normalize('NFKC');
console.log(nfkcStr); // 输出: "é"

// 转换为 NFKD 形式
const nfkdStr = str.normalize('NFKD');
console.log(nfkdStr); // 输出: "é"

// 比较 NFC 和 NFKC 形式
console.log(nfcStr === nfkcStr); // 输出: true

// 比较 NFD 和 NFKD 形式
console.log(nfdStr === nfkdStr); // 输出: true

// 比较原始字符串和 NFC 形式
console.log(str === nfcStr); // 输出: true

22.padEnd(targetLength, padString):用指定的字符串填充字符串的末尾,使其达到指定的长度。

let str = "hello";

// 在字符串末尾填充 "0",直到长度达到 5
let paddedStr = str.padEnd(5, '0');
console.log(paddedStr); // 输出: "hello"

// 再次尝试填充,但目标长度小于字符串长度
let paddedStr2 = str.padEnd(3, '0');
console.log(paddedStr2); // 输出: "hello"

// 使用不同的填充字符串
let paddedStr3 = str.padEnd(8, '-');
console.log(paddedStr3); // 输出: "hello---"

// 如果填充字符串太长,它将被截断以适应目标长度
let paddedStr4 = str.padEnd(6, 'abcdefgh');
console.log(paddedStr4); // 输出: "helloa"

23.padStart(targetLength, padString):用指定的字符串填充字符串的开头,使其达到指定的长度。

let str = "world";

// 在字符串开头填充 "hello ",直到长度达到 10
let paddedStr = str.padStart(10, 'hello ');
console.log(paddedStr); // 输出: "hello world"

// 如果目标长度小于字符串长度,返回原始字符串
let paddedStr2 = str.padStart(3, 'x');
console.log(paddedStr2); // 输出: "world"

// 使用不同的填充字符串
let paddedStr3 = str.padStart(11, '-=');
console.log(paddedStr3); // 输出: "-=world"

// 如果填充字符串太长,它将被截断以适应目标长度
let paddedStr4 = str.padStart(7, 'abcdefgh');
console.log(paddedStr4); // 输出: "abcdewo"

24.repeat(count):返回重复指定次数的字符串。

let str = "abc";

// 重复字符串 3 次
let repeatedStr = str.repeat(3);
console.log(repeatedStr); // 输出: "abcabcabc"

// 重复字符串 0 次
let zeroRepeatedStr = str.repeat(0);
console.log(zeroRepeatedStr); // 输出: ""

// 重复字符串 4.5 次(结果将被截断为整数)
let floatRepeatedStr = str.repeat(4.5);
console.log(floatRepeatedStr); // 输出: "abcabcabc"

// 使用负数值将返回空字符串
let negativeRepeatedStr = str.repeat(-2);
console.log(negativeRepeatedStr); // 输出: ""

25.search(regexp):在字符串中搜索匹配正则表达式的值。

let str = "Hello, world!";

// 使用正则表达式搜索 "world"
let index = str.search(/world/);
console.log(index); // 输出: 7

// 搜索不存在的字符串
let notFoundIndex = str.search(/goodbye/);
console.log(notFoundIndex); // 输出: -1

// 使用带有全局标志的正则表达式
let globalRegex = /o/g;
let lastIndex = str.search(globalRegex);
console.log(lastIndex); // 输出: 4(第一个 'o' 的位置)

// 搜索时忽略大小写
let caseInsensitiveRegex = /WORLD/i;
let caseInsensitiveIndex = str.search(caseInsensitiveRegex);
console.log(caseInsensitiveIndex); // 输出: 7(即使正则表达式是大写的,也能找到匹配项)

26.toLocaleLowerCase():将字符串转换为小写,根据当前语言环境。

let str = "Hello World!";
let lowerCaseStr = str.toLocaleLowerCase();
console.log(lowerCaseStr); // 输出: "hello world!"

27.toLocaleUpperCase():将字符串转换为大写,根据当前语言环境。

let str = "Hello, world!";
let upperCaseStr = str.toLocaleUpperCase();
console.log(upperCaseStr); // 输出"HELLO, WORLD!"

28.toString():返回字符串的原始值。

// 数字的 toString()
let number = 123;
let numberString = number.toString();
console.log(numberString); // 输出: "123"

// 布尔值的 toString()
let boolean = true;
let booleanString = boolean.toString();
console.log(booleanString); // 输出: "true"

// 数组的 toString()
let array = [1, 2, 3, 4];
let arrayString = array.toString();
console.log(arrayString); // 输出: "1,2,3,4"

// 日期对象的 toString()
let date = new Date();
let dateString = date.toString();
console.log(dateString); // 输出类似于 "Wed Mar 23 2023 14:25:35 GMT+0800 (中国标准时间)"

// 自定义对象的 toString()
let person = {
  name: "Alice",
  age: 30
};
let personString = person.toString();
console.log(personString); // 输出: "[object Object]"

// 重写自定义对象的 toString()
person.toString = function() {
  return `Person(name: ${this.name}, age: ${this.age})`;
};

personString = person.toString();
console.log(personString); // 输出: "Person(name: Alice, age: 30)"

// 函数的 toString()
function greet(name) {
  console.log(`Hello, ${name}!`);
}

let greetString = greet.toString();
console.log(greetString); // 输出函数的源代码字符串

29.trimEnd():去除字符串末尾的空格。

const str = "  Hello World  ";
console.log(str.trimEnd()); //输出"  Hello World"

30.trimStart():去除字符串开头的空格。

const str = "  Hello World  ";
console.log(str.trimStart()); //输出"Hello World  "

31.valueOf():返回字符串的原始值。

let numObj = new Number(42);
console.log(numObj.valueOf()); // 输出: 42
console.log(numObj + 1); // 输出: 43,这里隐式调用了 numObj.valueOf()

let boolObj = new Boolean(true);
console.log(boolObj.valueOf()); // 输出: true
console.log(boolObj && "Yes"); // 输出: "Yes",这里隐式调用了 boolObj.valueOf()

let dateObj = new Date();
console.log(dateObj.valueOf()); // 输出: 当前时间的 Unix 时间戳(毫秒)
console.log(dateObj - 0); // 输出与上面相同,这里隐式调用了 dateObj.valueOf()
  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值