js 好用的字符操作方法

序:突然感觉有些方法常见有时也用,但怕有时不记得,顺便记录一下!

一、获取类方法

javascript 复制代码
let str = "Hello,你们好!"
console.log(str.charAt(6))       // 你
console.log(str.charAt(12))      // (空字符串)

console.log(str.charCodeAt(2))   // 108
console.log(str.charCodeAt(12))  // NaN

console.log(String.fromCharCode(97,98,99,100))  // abcd

1)charAt()

charAt()方法可用来获取指定位置的字符串,index为字符串索引值,index的范围从0开始到string.length--1,若不在这个范围将返回一个空字符串。

2)charCodeAt()

charCodeAt()方法可返回指定位置的字符的Unicode编码

3)fromCharCode()

fromCharCode()可接受一个或多个Unicode值,然后返回一个字符串。

二。查找类方法

javascript 复制代码
let str = "Hello,你们好!"
console.log(str.indexOf("l"))     // 2
console.log(str.indexOf("l",3))   // 3
console.log(str.indexOf("f"))     // -1

console.log(str.lastIndexOf("l")) // 3
console.log(str.lastIndexOf("f")) // -1

console.log(str.search("l"))      // 2
console.log(str.search("f"))      // -1
console.log(str.search(/Llo/i))   // 2

console.log(str.match("你们好"))  // ["你们好", index: 6, input: "Hello,你们好!", groups: undefined]
console.log(str.match(/\w/))      // ["H", index: 0, input: "Hello,你们好!", groups: undefined]
console.log(str.match("哈哈"))    // null

1)indexOf()

indexOf()用来检索指定的字符串值在字符串中首次出现的位置。

2)lastIndexOf()

lastIndexOf()语法与indexOf()类似,它返回的是一个指定的子字符串值最后出现的位置,其检索顺序是从后向前,没有找到则返回-1。

3)search()

search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。它会返回第一个匹配的子字符串的起始位置,如果没有匹配的,则返回-1。

4)match()

match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

三、截取类方法

javascript 复制代码
let str = "Hello,你们好!"
console.log(str.substring(2,5))  // llo
console.log(str.substring(2))    // llo,你们好!

console.log(str.substr(2,5))     // llo,你
console.log(str.substr(-2,3))    // 好!

console.log(str.slice(2,5))      // llo
console.log(str.slice(-5,-2))    // ,你们

1)substring()

substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值 ),分别是要截取的开始位置和结束位置,它将返回一个新的字符串,其内容是从start处到end-1处的所有字符。

2)substr()

substr()方法可在字符串中抽取从start下标开始的指定数目的字符。

3)slice()

slice()方法与substring()方法非常类似,它传入的两个参数也分别对应着开始位置和结束位置。

四、其他字符串方法

javascript 复制代码
let str = "Hello,你们好!"
console.log(str.replace("你们","大家")) // Hello,大家好!
console.log(str.replace(/\w/,"*"))     // *ello,你们好!
console.log(str.replace(/\w/g,"*"))    // *****,你们好!

console.log(str.split(","))            // ["Hello", "你们好!"]

console.log(str.toLowerCase())         // hello,你们好!
console.log(str.toUpperCase())         // HELLO,你们好!

console.log(str.concat("去哪!"))       // Hello,你们好!去哪!

1)replace()

replace()方法用来进行字符串替换操作,它可以接收两个参数,前者为被替换的子字符串(可以是正则表达式),后者为用来替换的文本。

2)split()

split()方法用于把一个字符串分割成字符串数组。

3)toLowerCase() 和 toUpperCase()

toLowerCase()方法可以把字符串中的大写字母转换为小写,toUpperCase()方法可以把字符串中的小写字母转换为大写。

4)concat()

concat() 方法用于连接两个或多个字符串,相当于"+"运算符。

5)padStart() 和 padEnd()

复制代码
str.padStart(targetLength, padString) 
  • targetLength:目标字符串的长度。
  • padString:用于填充的字符串。如果省略,默认使用空格填充。
javascript 复制代码
const str = "hello";
const t1 = str.padStart(10, false);// 结果:'falsehello'
const t2 = str.padStart(10, null); // 结果:'nullnhello'
const t3 = str.padStart(10, []);   // 结果:'hello',因为[]转换成字符串是空字符串
const t4 = str.padStart(10, {});   // 结果:'[objehello'
console.log("打印",t1,t2,t3,t4);
const t21 = str.padEnd(10, false);// 结果:'hellofalse'
const t22 = str.padEnd(10, null); // 结果:'hellonulln'
const t23 = str.padEnd(10, []);   // 结果:'hello',因为[]转换成字符串是空字符串
const t24 = str.padEnd(10, {});   // 结果:'hello[obje'
console.log("打印2",t21,t22,t23,t24);

padEnd() 顾名思义与 padStart() 相反,padStart() 填充的在前,padEnd() 填充的在后;

6)trim()、trimStart() 和 trimEnd()

trimLeft() 方法是trimStart() 方法的别名。 trimLeft() 具有与 trimLeft() 方法相同的功能。 建议您使用 trimStart() 方法。

trimRight() 方法是trimEnd() 方法的别名。 trimRight() 提供与 trimRight() 方法相同的功能。 但是,建议您使用 trimEnd() 方法。

javascript 复制代码
const str = "   hello world   ";
const start = str.trimStart();
const left = str.trimLeft();
const center = str.trim();
const end = str.trimEnd();
const right = str.trimRight();
console.log("打印",{start,left,center,end,right})
// 打印 {start: "hello world  ", left: "hello world  ", center: "hello world", end: "   hello world", right: "   hello world"}
相关推荐
Mintopia4 小时前
Web 安全与反编译源码下的权限设计:构建前后端一体的信任防线
前端·安全·编译原理
林深现海4 小时前
Jetson Orin nano/nx刷机后无法打开chrome/firefox浏览器
前端·chrome·firefox
黄诂多5 小时前
APP原生与H5互调Bridge技术原理及基础使用
前端
前端市界5 小时前
用 React 手搓一个 3D 翻页书籍组件,呼吸海浪式翻页,交互体验带感!
前端·架构·github
文艺理科生5 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构
千寻girling5 小时前
主管:”人家 Node 框架都用 Nest.js 了 , 你怎么还在用 Express ?“
前端·后端·面试
C澒5 小时前
Vue 项目渐进式迁移 React:组件库接入与跨框架协同技术方案
前端·vue.js·react.js·架构·系统架构
xiaoxue..5 小时前
合并两个升序链表 与 合并k个升序链表
java·javascript·数据结构·链表·面试
清山博客5 小时前
OpenCV 人脸识别和比对工具
前端·webpack·node.js
要加油哦~5 小时前
AI | 实践教程 - ScreenCoder | 多agents前端代码生成
前端·javascript·人工智能