JS字符串方法

news/2024/10/18 5:38:13/

文章目录

    • 1.length:返回字符串的长度。
    • 2.charAt(index):返回指定索引位置的字符。
    • 3.concat(str1, str2, ...):将两个或多个字符串连接起来。
    • 4.indexOf(searchValue, startIndex):返回指定值在字符串中第一次出现的位置。
    • 5.lastIndexOf(searchValue, startIndex):返回指定值在字符串中最后一次出现的位置。
    • 6.toUpperCase():将字符串转换为大写。
    • 7.toLowerCase():将字符串转换为小写。
    • 8.slice(startIndex, endIndex):提取字符串的一部分。
    • 9.substring(startIndex, endIndex):提取字符串的一部分。
    • 10.substr(startIndex, length):从指定位置开始,截取指定长度的字符串。
    • 11.replace(searchValue, replaceValue):替换字符串中的指定值。
    • 12.split(separator, limit):将字符串分割成子字符串数组。
    • 13.trim():去除字符串两端的空格。
    • 14.startsWith(searchValue, position):判断字符串是否以指定值开头。
    • 15.endsWith(searchValue, position):判断字符串是否以指定值结尾。
    • 16.includes(searchValue, position):判断字符串是否包含指定值。
    • 17.charCodeAt(index):返回指定索引位置的字符的Unicode值。
    • 18.codePointAt(index):返回指定索引位置的字符的Unicode码点。
    • 19.localeCompare(compareString):比较两个字符串的排序顺序。
    • 20.match(regexp):在字符串中匹配正则表达式。
    • 21.normalize(form):标准化字符串的Unicode表示形式。
    • 22.padEnd(targetLength, padString):用指定的字符串填充字符串的末尾,使其达到指定的长度。
    • 23.padStart(targetLength, padString):用指定的字符串填充字符串的开头,使其达到指定的长度。
    • 24.repeat(count):返回重复指定次数的字符串。
    • 25.search(regexp):在字符串中搜索匹配正则表达式的值。
    • 26.toLocaleLowerCase():将字符串转换为小写,根据当前语言环境。
    • 27.toLocaleUpperCase():将字符串转换为大写,根据当前语言环境。
    • 28.toString():返回字符串的原始值。
    • 29.trimEnd():去除字符串末尾的空格。
    • 30.trimStart():去除字符串开头的空格。
    • 31.valueOf():返回字符串的原始值。


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()

http://www.ppmy.cn/news/1448467.html

相关文章

2024年五一数学建模C题完整解题思路代码

2024年第二十一届五一数学建模竞赛题目 C题 煤矿深部开采冲击地压危险预测 煤炭是中国的主要能源和重要的工业原料。然而&#xff0c;随着开采深度的增加&#xff0c;地应力增大&#xff0c;井下煤岩动力灾害风险越来越大&#xff0c;严重影响着煤矿的安全高效开采。在各类深…

RabbitMQ是如何保证消息不被重复消费,或者说是如何保证消息消费时的幂等性的

目录 面试官:RabbitMQ是如何保证消息不被重复消费?或者说是如何保证消息消费时的幂等性的1. 使用唯一业务标识2. 使用RabbitMQ的消息去重插件3. 使用业务逻辑实现幂等性4. 使用消息属性和死信队列5. 使用Spring Boot的重试机制该文章专注于面试,面试只要回答关键点即可,不需…

OPPO Reno10Pro/Reno11/K10手机强解BL刷root权限KSU内核抓包刷机救砖

OPPO Reno10Pro/Reno11/K10手机虽然发布时间并不久&#xff0c;但由于天玑处理器的体质&#xff0c;已经支持强制解锁BL了&#xff0c;该漏洞来自第三方工具适配&#xff0c;支持OPPO天机8100/8200刷机救砖解锁BL不需要等待官方深度测试直接实现。解锁BL后的OPPO Reno10Pro/Ren…

【华为】路由综合实验(基础)

【华为】路由综合实验 实验需求拓扑配置AR1AR2AR3AR4AR5PC1PC2 查看通信OSPF邻居OSPF路由表 BGPBGP邻居BGP 路由表 配置文档 实验需求 ① 自行规划IP地址 ② 在区域1里面 启用OSPF ③ 在区域1和区域2 启用BGP&#xff0c;使AR4和AR3成为eBGP&#xff0c;AR4和AR5成为iBGP对等体…

【Android】实现 MVVM 架构,创建 ViewModel、LiveData 和数据绑定等组件在 XML 中使用数据绑定

在 Android 中实现 MVVM 架构&#xff0c;需要创建 ViewModel、LiveData 和数据绑定等组件&#xff0c;并在 XML 中使用数据绑定来将 ViewModel 的数据和 UI 绑定在一起。以下是一个简单的示例代码&#xff1a; 创建 ViewModel 类&#xff1a; public class MyViewModel exte…

【openLooKeng集成Hive连接器完整过程】

【openLooKeng集成Hive连接器完整过程】 一、摘要二、正文2.1 环境说明2.2 Hadoop安装2.2.1. 准备工作2.2.2 在协调节点coordinator上进行安装hadoop2.2.3、将Hadoop安装目录分发到从节点worker2.2.4、在协调节点coordinator上启动hadoop集群2.3 MySQL安装2.4 Hive安装及基本操…

uniapp 桌面应用插件 Ba-Launcher

简介&#xff08;下载地址&#xff09; Ba-Launcher 可以让你的应用成为简单的桌面应用&#xff0c;如需扩展功能&#xff0c;请联系我。 截图展示 可关注博客&#xff0c;实时更新最新插件&#xff1a; uniapp 常用原生插件大全 使用方法 使用方法也很简单&#xff0c;在插…

Pandas入门篇(三)-------数据可视化篇2(pandas-plot篇)

目录 概述一、格式1. 生成pandas.plotting对象来生成图表2. 调用plot()函数来生成图表3.支持的图表类型 二、单变量绘图常用图表1. 柱状图&#xff08;bar&#xff09;使用场景代码实现 2. 折线图&#xff08;line&#xff09;&#xff08;默认即为折线图&#xff09;适用场景代…