JS常用字符串方法

news2025/1/23 7:27:09

📝个人主页:爱吃炫迈
💌系列专栏:数据结构与算法
🧑‍💻座右铭:道阻且长,行则将至💗

文章目录

  • 移除字符串首尾空白符
    • trim()
    • trimStart()
    • trimEnd()
  • 获取字符串指定位置的值
    • charAt()
    • charCodeAt()
    • indexOf()
    • lastIndexOf()
    • includes()
    • startsWith()
    • endsWith()
  • 连接多个字符串
    • concat()
  • 字符串分割成数组
    • split()
  • 截取字符串
    • slice()
    • substr()
    • substring()
  • 字符串大小写转换
    • toLowerCase()
    • toUpperCase()
  • 字符串模式匹配
    • replace()
    • match()
    • search()
  • 获取字符串本身
    • valueOf()
    • toString()
  • 重复字符串
    • repeat()
  • 补齐字符串长度
    • padStart(),padEnd()
  • 字符串转换为数字
    • parseInt()
    • parseFloat()
    • parseFloat()


移除字符串首尾空白符

trim()

trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

let s = "  hello wor  d   ";
let s1 = s.trim();
console.log(s);
console.log(s1);


trimStart()

trimStart()方法用于删除字符串开头的空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

let s = "  a bc   ";
let s1 = s.trimStart();
console.log(s);
console.log(s1);

在这里插入图片描述


trimEnd()

trimEnd()方法用于删除字符串结尾的空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

let s = "  a bc   ";
let s1 = s.trimEnd();
console.log(s);
console.log(s1);

在这里插入图片描述

获取字符串指定位置的值

charAt()

charAt() 方法获取到的是指定位置的字符;

语法

当index的取值不在str的长度范围内时,s[index]会返回undefined,而charAt(index)会返回空字符串;

案例

let s = "abc";
let s1 = s.charAt(1);
let s2 = s.charAt(4);
console.log(s[1]);
console.log(s1);

console.log(s[4]);
console.log(s2);

在这里插入图片描述


charCodeAt()

charCodeAt()方法获取的是指定位置字符的Unicode值

案例

let s = "abc";
let s1 = s.charCodeAt(1);
console.log(s[1]);
console.log(s1);

在这里插入图片描述

检索字符串是否包含特定序列


indexOf()

查找某个字符,有则返回第一次匹配到的位置,否则返回-1

语法

string.indexOf(searchvalue,fromindex)
  • searchvalue:必需,规定需查找的字符串值;
  • fromindex:可选,规定在字符串中开始检索的位置。它的合法取值是 0 到 string.length - 1。如省略该参数,则从字符串的首字符开始检索。

案例

let s = "abcdefgabcdefg";
console.log(s.indexOf("a"));     //输出0
console.log(s.indexOf("z"));     //输出-1
console.log(s.indexOf("a", 1));  //输出7
console.log(s.indexOf("a", 20));  //输出-1

lastIndexOf()

查找某个字符,有则返回最后一次匹配到的位置,否则返回-1

案例

let s = "abcdefgabcdefg";
console.log(s.lastIndexOf("a"));   //输出7
console.log(s.lastIndexOf("z"));   //输出-1

includes()

判断字符串是否包含指定的子字符串。如果包含子字符串则返回 true,否则返回 false。

语法

string.includes(searchvalue, start)
  • searchvalue:必需,规定要查找的字符串值;
  • start:可选,规定在字符串中开始检索的位置,默认为 0。

案例

let s = "abcdefgabcdefg";
console.log(s.includes("a")); // 输出结果:true
console.log(s.includes("a", 1)); // 输出结果:true
console.log(s.includes("z")); // 输出结果:false
console.log(s.includes("abc")); // 输出结果:true
console.log(s.includes("abc", 1)); // 输出结果:true
console.log(s.includes("abc", 8)); // 输出结果:false

startsWith()

判断当前字符串是否以指定的子字符串开始。如果是以指定的子字符串开头返回 true,否则 false。

语法

string.startsWith(searchvalue, start)
  • searchvalue:必需,规定要查找的字符串值;
  • start:可选,规定在字符串中开始检索的位置,默认值为 0。

案例

let s = "abcdefgabcdefg";
console.log(s.startsWith("a")); // 输出结果:true
console.log(s.startsWith("a", 1)); // 输出结果:false
console.log(s.startsWith("b", 1)); // 输出结果:true
console.log(s.startsWith("abc")); // 输出结果:true
console.log(s.startsWith("abc", 1)); // 输出结果:false
console.log(s.startsWith("abc", 7)); // 输出结果:true

endsWith()

判断当前字符串是否是以指定的子字符串结尾。如果是以指定的子字符串结尾返回 true,否则 false。

语法

string.endsWith(searchvalue, length)
  • searchvalue:必需,规定要查找的字符串值;
  • length: 可选:规定字符串的长度,默认值为原始字符串长度 string.length。

案例

let s = "abcdefgabcdefg";
console.log(s.endsWith("g")); // 输出结果:true
console.log(s.endsWith("g", 13)); // 输出结果:false
console.log(s.endsWith("f")); // 输出结果:false
console.log(s.endsWith("f", s.length - 1)); // 输出结果:true
console.log(s.endsWith("efg")); // 输出结果:true
console.log(s.endsWith("efg", 7)); // 输出结果:true

连接多个字符串

concat()

连接两个或多个字符串。该方法不会改变原有字符串,会返回连接两个或多个字符串的新字符串。

语法

string.concat(string1, string2, ..., stringn)

案例

let s = "abc";
console.log(s); // 输出结果:abc
console.log(s.concat("def")); // 输出结果:abcdef
console.log(s.concat("def", "ghi")); // 输出结果:abcdefghi

字符串分割成数组

split()

将一个字符串分割成字符串数组。该方法不会改变原始字符串

语法

string.split(separator,limit)
  • separator:必需。字符串或正则表达式,从该参数指定的地方分割字符串。
  • limit:可选。该参数可指定返回的数组的最大长度。默认值为字符串长度string.length。

案例

let s = "abc dd e";
console.log(s); // 输出结果:abc dd e
console.log(s.split("")); // 输出结果:['a', 'b', 'c',' ', 'd', 'd',' ', 'e']
console.log(s.split(" ")); // 输出结果:[ 'abc', 'dd', 'e' ]
console.log(s.split("a")); // 输出结果:[ '', 'bc dd e' ]
console.log(s.split("c")); // 输出结果:[ 'ab', ' dd e' ]
console.log(s.split("d")); // 输出结果:[ 'abc ', '', ' e' ]
console.log(s.split("e")); // 输出结果:[ 'abc dd ', '' ]
console.log(s.split("c", 1)); // 输出结果:[ 'ab' ]
console.log(s.split("c", 2)); // 输出结果:[ 'ab', ' dd e' ]
  • 在将字符串分割成数组时,可以同时拆分多个分割符,使用正则表达式即可实现:
let s = "abc,dd;e";
console.log(s); // 输出结果:abc,dd;e
console.log(s.split(/[,;]/)); // 输出结果:[ 'abc', 'dd', 'e' ]

截取字符串

slice()

截取字符串的某个部分,并以新的字符串返回被截取的部分,即会改变原来的字符串。

语法

string.slice(start,end)
  • start:必需。 要截取字符串的起始下标。如果为负数,则从尾部开始截取,最后一个字符的下标是-1,倒数第二个字符的下标是-2,以此类推
  • end:可选。 要截取的字符串结尾的下标。不可以为负数

案例

let s = "abcdefg";
console.log(s.slice(0)); // 输出结果:abcdefg
console.log(s.slice(1)); // 输出结果:bcdefg
console.log(s.slice(6)); // 输出结果:g
console.log(s.slice(-2)); // 输出结果:fg
console.log(s.slice(1, 4)); // 输出结果:bcd
console.log(s.slice(-2, 6)); // 输出结果:f
console.log(s.slice(4, 1)); // 输出结果:""
console.log(s.slice(-2, -3)); // 输出结果:""
console.log(s.slice(5, -2)); // 输出结果:""

substr()

截取从指定下标开始的指定长度的字符串。

语法

string.substr(start,length)
  • start :必需。截取的字符串的起始下标。必须是数值。如果为负数,则从尾部开始截取,最后一个字符的下标是-1,倒数第二个字符的下标是-2,以此类推
  • length:可选。截取的字符串的长度。必须是数值,不可以为负数

案例

let s = "abcdefg";
console.log(s.substr()); // 输出结果:abcdefg
console.log(s.substr(0)); // 输出结果:abcdefg
console.log(s.substr(1)); // 输出结果:bcdefg
console.log(s.substr(-1)); // 输出结果:g
console.log(s.substr(-2)); // 输出结果:fg
console.log(s.substr(-2, -1)); // 输出结果:""
console.log(s.substr(0, 3)); // 输出结果:abc

substring()

截取字符串中介于两个指定下标之间的字符。

语法

string.substring(from, to)
  • [from, to)
  • from:必需。一个非负的整数,规定要提取的子串在字符串中的起始位置。
  • to:可选。一个非负的整数,规定要提取的子串在字符串中的结尾位置,但不包含该位置的字符串。如果省略该参数,那么返回的子串会一直到字符串的结尾。

案例

let s = "abcdefg";
console.log(s.substring(1)); // 输出结果:bcdefg
console.log(s.substring(1, 3)); // 输出结果:bc
console.log(s.substring(3, 1)); // 输出结果:bc

字符串大小写转换

toLowerCase()

将字符串转换为小写,不改变原始字符串

let s = "AbCdefG";
console.log(s); // 输出结果:AbCdefG
console.log(s.toLowerCase()); // 输出结果:abcdefg

toUpperCase()

把字符串转换为大写,不改变原始字符串

let s = "AbCdefG";
console.log(s); // 输出结果:AbCdefG
console.log(s.toUpperCase()); // 输出结果:ABCDEFG

字符串模式匹配

replace()

在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法

string.replace(searchvalue, newvalue)

searchvalue:必需。规定子字符串或要替换的模式的 RegExp 对象。如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。( RegExp 对象即正则表达式)
newvalue:必需。一个字符串值。规定了替换文本或生成替换文本的函数。

案例

let s = "abcdefg";
console.log(s); // 输出结果:abcdefg
console.log(s.replace("c", "z")); // 输出结果:abzdefg

match()

在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

案例

let s = "abcdefg";
console.log(s); // 输出结果:abcdefg
console.log(s.match("c")); 
// 输出结果:[ 'c', index: 2, input: 'abcdefg', groups: undefined ]

search()

检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,返回第一个子字符串相匹配的起始位置。

语法

string.search(searchvalue)
  • searchvalue:要检索的子字符串

案例

let s = "abcdefg";
console.log(s); // 输出结果:abcdefg
console.log(s.search("c")); // 输出结果:2

获取字符串本身

valueOf()

返回字符串对象的原始值

let s = ["abc", "efg"];
console.log(s.valueOf()); // 输出结果:[ 'abc', 'efg' ]

toString()

返回字符串对象本身,将其他类型数据转换成字符串

let s = ["abc", "efg"];
let s1 = "abc";
let s2 = "123";
console.log(s.toString()); // 输出结果:abc,efg
console.log(s1.toString()); // 输出结果:abc
console.log(typeof s2.toString()); // 输出结果:string

重复字符串

repeat()

重复字符串

语法

string.repeat(count)
  • count表示字符串重复的次数
  • count如果是小数,会向下取整
  • count如果是负数,会报错
  • count如果是字符串,则先将字符串转换成数字

案例

let s = "a";
console.log(s.repeat(3)); // 输出结果:aaa
console.log(s.repeat(3)); // 输出结果:aaa
// console.log(s.repeat(-3)); // 输出结果:报错
console.log(s.repeat("A")); // 输出结果:""

补齐字符串长度

padStart(),padEnd()

如果某个字符串不够指定长度,padStart()头部补齐字符串,padEnd()尾部补齐字符串

语法

  • 接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

案例

console.log("a".padStart(3, "efg")); // 输出结果:efa
console.log("a".padStart(4, "efg")); // 输出结果:efga
console.log("a".padEnd(3, "efg")); // 输出结果:aef
console.log("a".padEnd(4, "efg")); // 输出结果:aefg

字符串转换为数字

parseInt()

语法

parseInt(string, radix)
  • string:必需。要被解析的字符串。
  • radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

案例

  • 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
parseInt("10");			  // 输出结果:10
parseInt("17",8);		  // 输出结果:15 (8+7)
parseInt("010");		  // 输出结果:10
  • 当参数 radix 的值以 “0x” 或 “0X” 开头,将以 16 为基数:
parseInt("0x10")      // 输出结果:16
  • 当参数 radix 的值小于 2 或者大于 36,则 parseInt() 将返回 NaN:
parseInt("50", 1)      // 输出结果:NaN
parseInt("50", 40)     // 输出结果:NaN
  • 只有字符串中的第一个数字会被返回,当遇到第一个不是数字的字符为止
parseInt("40 4years")   // 输出结果:40
  • 如果字符串的第一个字符不能被转换为数字,就会返回 NaN
parseInt("new100")     // 输出结果:NaN
  • 字符串开头和结尾的空格是允许的
parseInt("  60  ")    // 输出结果: 60

parseFloat()

  • parseFloat() 方法可解析一个字符串,并返回一个浮点数。
parseFloat("10.00")      // 输出结果:10.00
parseFloat("10.01")      // 输出结果:10.01
parseFloat("-10.01")     // 输出结果:-10.01
parseFloat("40.5 years") // 输出结果:40.5
  • 如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN
parseFloat("new40.5")    // 输出结果:NaN

到第一个不是数字的字符为止

parseInt("40 4years")   // 输出结果:40
  • 如果字符串的第一个字符不能被转换为数字,就会返回 NaN
parseInt("new100")     // 输出结果:NaN
  • 字符串开头和结尾的空格是允许的
parseInt("  60  ")    // 输出结果: 60

parseFloat()

  • parseFloat() 方法可解析一个字符串,并返回一个浮点数。
parseFloat("10.00")      // 输出结果:10.00
parseFloat("10.01")      // 输出结果:10.01
parseFloat("-10.01")     // 输出结果:-10.01
parseFloat("40.5 years") // 输出结果:40.5
  • 如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN
parseFloat("new40.5")    // 输出结果:NaN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记2023第十四届蓝桥杯感受

弱校ACM队员,曾获CB国二,CG国优第六。(我是fw) ------------------------------------------------------------------------分割线 2023.04.09 今年再次参加CG组,估计g了,盲猜一波省二前排,出…

基于BenchmarkSQL的Oracle数据库tpcc性能测试

基于BenchmarkSQL的Oracle数据库tpcc性能测试安装BenchmarkSQL及其依赖安装软件依赖编译BenchmarkSQLBenchmarkSQL props文件配置数据库用户配置BenchmarkSQL压测装载测试数据TPC-C压测(固定事务数量)TPC-C压测(固定时长)生成测试…

C++轻量级Web服务器TinyWebServer源码分析之http篇

文章目录http篇简介一、服务器接收http请求和http报文解析解析报文整体流程从状态机逻辑主状态机逻辑二、服务器响应请求报文http篇简介 http类这篇个人觉得是最难同时也是最繁琐的一篇,本篇在基础知识方面,包括epoll、HTTP报文格式、状态码和有限状态机…

Python 小型项目大全 71~75

七十一、声音模拟 原文:http://inventwithpython.com/bigbookpython/project71.html 类似于西蒙电子玩具,这款识记游戏使用第三方playsound模块,播放四种不同的声音,分别对应键盘上的A、S、D、F键。当你成功地重复游戏给你的图案时…

驱动保护 -- 通过PID保护指定进程

一、设计界面 1、添加一个编辑框输入要保护的进程PID,并添加两个按钮,一个保护进程,一个解除保护 2、右击编辑框,添加变量 二、驱动层代码实现 1、声明一个受保护的进程PID数组 static UINT32 受保护的进程PID[256] { 0 }; 2…

Python Web开发技巧II

Postman安置Cookie 对于大型项目而已,所携带的cookie往往都不止一个,而是一堆,甚至特别特别长,postman文档提供的cookie操作是全局的,但需要一个一个打(折磨),唯一的优点就是作用域…

tocbot生成文章目录

学习链接 github上的tocbot npmjs上的tocbot 效果图 使用步骤 1. 安装tocbot npm install tocbot --save2. vue组件中使用引入tocbot 只需要引入tocbot,然后调用tocbot.init(…),指定提取的文章内容所在的dom,以及要把生成的目录放到哪个…

4月第1周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年4月3日-4月9日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B站…

Flink (十一) --------- Table API 和 SQL

目录一、快速上手1. 需要引入的依赖2. 一个简单示例二、基本 API1. 程序架构2. 创建表环境3. 创建表4. 表的查询5. 输出表6. 表和流的转换三、流处理中的表1. 动态表和持续查询2. 将流转换成动态表3. 用 SQL 持续查询3. 将动态表转换为流四、时间属性和窗口1. 事件时间2. 处理时…

PDF怎么转换成word格式?这三个方法转换效率很高

在日常办公生活中,我们经常需要对文件进行格式转换,尤其是将PDF文件转换为可编辑的Word文件。虽然在Office软件中将Word文件转换为PDF很容易,但是将PDF文件转换为Word文件却需要一些技巧。在保证安全性能的前提下,如何将PDF文件转…

回溯算法编程题集合(leetcode)

给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 示例 1: 输入: nums [4, 3, 2, 3, 5, 2, 1], k 4 输出: True 说明: 有可能将其分成 4 个子集&#x…

【springboot】ApplicationListener用法及源码

用法 方法一:继承ApplicationListener 传递事件 继承于ApplicationEvent public class ForDebuggerEvent extends ApplicationEvent {public ForDebuggerEvent(Object source) {super(source);}public void executeEvent() {System.out.println("ForDebugge…

第四章 网络层

网络层服务 网络层需要实现的两项重要功能: 转发;当通过一条输入链路接收到一个分组后,路由器需要决策通过哪条输出链路将分组发送出去,并将分组从输入接口转移到输出接口路由选择;当分组从源主机流向目的主机时&…

24.SSM-SpringMVC延续--拦截器

目录 一、拦截器。 (1)拦截器的作用。 (2)拦截器与过滤器的区别。 (3)拦截器的方法。 (4)拦截器的快速入门。 (5)多拦截器。 (5.1&#xf…

libui的简单使用

libui是一个 C 中简单且可移植(但并非不灵活)的 GUI 库,它使用每个平台原生的GUI技术进行绘制。 官网地址:链接 相关文件:链接 一、配置说明 1. 所需链接的库 在使用libui的过程中至少需要链接以下库 user32.lib ke…

NumPy 秘籍中文第二版:一、使用 IPython

原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 在本章中,我们将介绍以下秘籍: 安装 IPython使用 IPython 作为 Shell阅读手册页安装 matplotlib运行 IPython 笔记本导出 IPython 笔记本导入网…

分享:如何给 DBA 减负?

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 本文来自OceanBase社区分享,仅限交流探讨。原作者肖杨,OceanBase 软件开发工程师。 研发、数据分析师及运维内部人员有数据查询、数据订正等需求,若无管控平台&…

vscode推送文件至github步骤

@目录 1、步骤: 提交到本地仓库从本地仓库再提交到远程仓库2、具体操作: 2.1 准备工作 设置提交代码时的用户信息 开始前我们需要先设置提交的用户信息,包括用户名和邮箱: git config --global user.name "runoob" git config --global user.email "tes…

【mysql性能调优 • 二】mysql的启动关闭原理和实战,及常见的错误排查

前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系…

【CSS】定位 ⑥ ( 使用绝对定位在父容器任意位置显示子容器 | 代码示例 )

文章目录一、需求分析及核心开发要点二、完整代码示例一、需求分析及核心开发要点 要实现如下功能 , 下图 粉色 部分是 整体 父容器 , 紫色元素 是 中心的核心位置 , 蓝色是左上角的浮标 , 红色是右下角的浮标 ; 首先分析父容器元素 ; 由于 子元素 需要使用 绝对定位 , 此处的…