前端字符串方法汇总
1、length属性
const sss = 'length'console.log('字符串长度是', sss.length)
2、chartAt()
charAt()和charCodeAt()方法都可以通过索引来获取指定位置的值:
- charAt() 方法获取到的是指定位置的字符;
- charCodeAt()方法获取的是指定位置字符的Unicode值。
console.log('e的相应的位置呢', sss.charAt('e'))
console.log('相应的Unicode', sss.charCodeAt('e'))
3、检索字符串是否包含特定序列
这5个方法都可以用来检索一个字符串中是否包含特定的序列。其中前两个方法得到的指定元素的索引值,并且只会返回第一次匹配到的值的位置。后三个方法返回的是布尔值,表示是否匹配到指定的值。
indexOf()
indexOf():查找某个字符,有则返回第一次匹配到的位置,否则返回-1,其语法如下:
console.log('获取相应的位置', sss.indexOf('e'))
lastIndexOf()
lastIndexOf():查找某个字符,有则返回最后一次匹配到的位置,否则返回-1
console.log('获取相应的最后的位置', sss.lastIndexOf('e'))
includes()
includes():该方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。该方法的语法如下:
console.log('获取相应的字符串是否存在', sss.includes('en'), sss.includes('ao'))console.log('获取相应的字符串是否存在', sss.includes('en', 8)) // 8为起始位置
startsWith()
startsWith():该方法用于检测字符串是否以指定的子字符串开始。如果是以指定的子字符串开头返回 true,否则 false。其语法和上面的includes()方法一样。
console.log('startsWith获取相应的字符串是否存在', sss.startsWith('le'), sss.startsWith('ao'))console.log('startsWith获取相应的字符串是否存在', sss.startsWith('g', 3)) // 3为起始位置
endsWith()
endsWith():该方法用来判断当前字符串是否是以指定的子字符串结尾。如果传入的子字符串在搜索字符串的末尾则返回 true,否则将返回 false。其语法如下:
console.log('endsWith获取相应的字符串是否存在', sss.endsWith('e'), sss.endsWith('h', 5), sss.endsWith('h', 4))
4. 连接多个字符串
concat() 方法用于连接两个或多个字符串。该方法不会改变原有字符串,会返回连接两个或多个字符串的新字符串。其语法如下:
console.log('连接字符串', sss.concat('a', 'b', 'c', 'e', 'f', 'm'))
虽然concat()方法是专门用来拼接字符串的,但是在开发中使用最多的还是加操作符+,因为其更加简单。
5. 字符串分割成数组
split() 方法用于把一个字符串分割成字符串数组。该方法不会改变原始字符串。其语法如下:
string.split(separator,limit)
该方法有两个参数:
- separator:必需。字符串或正则表达式,从该参数指定的地方分割 string。
- limit:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
console.log('字符串获取相应的数组', sss.split('g'), sss.split('', 3), sss.split(''))
const list = 'apples,bananas;cherries'const fruits = list.split(/[,;]/)console.log(fruits)
6、截取字符串
substr()、substring()和 slice() 方法都可以用来截取字符串。
(1) slice()
slice() 方法用于提取字符串的某个部分,并以新的字符串返回被提取的部分。其语法如下:
console.log('slice使用', sss.slice(1, 2))
(2) substr()
substr() 方法用于在字符串中抽取从开始下标开始的指定数目的字符。其语法如下:
console.log('substr使用', sss.substr(1, 2))
(3) substring()
substring() 方法用于提取字符串中介于两个指定下标之间的字符。其语法如下:
console.log('substring使用', sss.substring(1, 2))
7. 字符串大小写转换
toLowerCase() 和 toUpperCase()方法可以用于字符串的大小写转换。
const bbbb = 'abcEDFhi'console.log('toLowerCase与toUpperCase', bbbb.toLowerCase(), bbbb.toUpperCase())
8. 字符串模式匹配
replace()、match()和search()方法可以用来匹配或者替换字符。
(1)replace()
replace():该方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。其语法如下:
const str = 'Mr Blue has a blue house and a blue car'console.log('replace', str.replace(/blue/gi, 'red'))
(2)match()
match():该方法用于在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。其语法如下:
const str1 = 'abcdef'console.log(str1.match('c'))
(3)search()
search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。其语法如下:
const str2 = 'abcdef'console.log(str2.search(/bcd/)) // 输出结果:1
9. 移除字符串收尾空白符
trim()、trimStart()和trimEnd()这三个方法可以用于移除字符串首尾的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
(1)trim()
trim() 方法用于移除字符串首尾空白符,该方法不会改变原始字符串:
const list2 = ' acb 'console.log('trim', list2.trim(), list2.trim().length)
(2)trimStart()
trimStart() 方法的的行为与trim()一致,不过会返回一个从原始字符串的开头删除了空白的新字符串,不会修改原始字符串:
const list2 = ' acb 'console.log('trim', list2.trim(), list2.trim().length, list2.trimStart(), list2.trimStart().length)
(3)trimEnd()
trimEnd() 方法的的行为与trim()一致,不过会返回一个从原始字符串的结尾删除了空白的新字符串,不会修改原始字符串:
const list2 = ' acb 'console.log('trim', list2.trim(), list2.trim().length, list2.trimStart(), list2.trimStart().length, list2.trimEnd(), list2.trimEnd().length)
10. 获取字符串本身
valueOf()和toString()方法都会返回字符串本身的值,感觉用处不大。
(1)valueOf()
valueOf():返回某个字符串对象的原始值,该方法通常由 JavaScript 自动进行调用,而不是显式地处于代码中。
let str = "abcdef"
console.log(str.valueOf()) // "abcdef"
(2)toString()
toString():返回字符串对象本身
let str = "abcdef"
console.log(str.toString()) // "abcdef"
11. 重复一个字符串
repeat() 方法返回一个新字符串,表示将原字符串重复n次:
'x'.repeat(3) // 输出结果:"xxx"
'hello'.repeat(2) // 输出结果:"hellohello"
'na'.repeat(0) // 输出结果:""
'na'.repeat(2.9) // 输出结果:"nana"
'na'.repeat(Infinity) // RangeError
'na'.repeat(-1) // RangeError
12. 补齐字符串长度
padStart()和padEnd()方法用于补齐字符串的长度。如果某个字符串不够指定长度,会在头部或尾部补全。
(1)padStart()
padStart()用于头部补全。该方法有两个参数,其中第一个参数是一个数字,表示字符串补齐之后的长度;第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串:
'x'.padStart(4, 'ab') // 'abax'
padStart()的常见用途是为数值补全指定位数,笔者最近做的一个需求就是将返回的页数补齐为三位,比如第1页就显示为001,就可以使用该方法来操作:
"1".padStart(3, '0') // 输出结果: '001'
"15".padStart(3, '0') // 输出结果: '015'
(2)padEnd()
padEnd()用于尾部补全。该方法也是接收两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串:
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
13. 字符串转为数字
parseInt()和parseFloat()方法都用于将字符串转为数字。
(1)parseInt()
parseInt() 方法用于可解析一个字符串,并返回一个整数。其语法如下:
该方法有两个参数:
- string:必需。要被解析的字符串。
- radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
console.log(parseInt('10')) // 输出结果:10console.log(parseInt('17',8)) // 输出结果:15 (8+7)console.log(parseInt('010')) // 输出结果:10 或 8
(2)parseFloat()
parseFloat() 方法可解析一个字符串,并返回一个浮点数。该方法指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。其语法如下:
console.log(parseFloat('10.00')) // 输出结果:10.00console.log(parseFloat('10.01')) // 输出结果:10.01console.log(parseFloat('-10.01')) // 输出结果:-10.01console.log(parseFloat('40.5 years')) // 输出结果:40.5
相关文章:
前端字符串方法汇总
1、length属性 const sss lengthconsole.log(字符串长度是, sss.length) 2、chartAt() charAt()和charCodeAt()方法都可以通过索引来获取指定位置的值: charAt() 方法获取到的是指定位置的字符;charCodeAt()方法获取的是指定位置字符的Unicode值。 …...
12 分布式锁加入看门狗
1、看门狗的流程图 2、看门狗的代码实现 /****类说明:Redis的key-value结构*/ public class LockItem {private final String key;private final String value;public LockItem(String key, String value) {this.key key;this.value value;}public String getKey…...
怎么判断list是否为null
List<Entity> baseMess new ArrayList<>(); baseMess motiveService.getBaseMessage(machine.get(i),preDate,nowDate); System.out.println("获取Size"baseMess.size()); baseMess.removeIf(Objects::isNull); System.out.println("获取Size"…...
11.数据公式中使用2个 $$ a =b $$,是什么意思?
在 LaTeX 中,双美元符号 $$ 用于进入和退出独立的数学模式,也就是数学公式模式。在 $$ 中的文本将被视为数学公式,并以数学排版的方式显示。 具体地说,$$ 的使用是为了在文档中创建居中显示的独立数学公式。这意味着公式将单独占…...
设计模式-14-迭代器模式
经典的设计模式有23种,但是常用的设计模式一般情况下不会到一半,我们就针对一些常用的设计模式进行一些详细的讲解和分析,方便大家更加容易理解和使用设计模式。 1-原理和实现 迭代器模式(Iterator Design Pattern)&a…...
防雷接地+防雷工程施工综合方案
一、地凯科技防雷工程接地概述 防雷接地工程是指在建筑物或其他设施上安装防雷装置,以防止雷电对人员、设备和建筑物造成危害的工程。防雷装置主要包括避雷针(网)、引下线、接地体(网)等部分,其中接地体&a…...
排序算法--选择排序
实现逻辑 ① 第一轮从下标为 1 到下标为 n-1 的元素中选取最小值,若小于第一个数,则交换 ② 第二轮从下标为 2 到下标为 n-1 的元素中选取最小值,若小于第二个数,则交换 ③ 依次类推下去…… void print_array(int a[], int n){f…...
【Web】Ctfshow SSRF刷题记录1
核心代码解读 <?php $url$_POST[url]; $chcurl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $resultcurl_exec($ch); curl_close($ch); ?> curl_init():初始curl会话 curl_setopt():会…...
【算法挨揍日记】day30——300. 最长递增子序列、376. 摆动序列
300. 最长递增子序列 300. 最长递增子序列 题目解析: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如&#…...
ROS2对比ROS1的一些变化与优势(全新安装ROS2以及编译错误处理)《1》
1、概述 我们在前面介绍的ROS,都是ROS1的版本,近期对机器狗进行学习的时候,发现版本是ROS2了,也发现平时习惯的一些命令都有了变化,改变还是挺大的,不过熟悉之后还是很习惯ROS2的写法。 ROS2不是在ROS1的基…...
基于单片机PM2.5监测系统仿真设计
**单片机设计介绍, 基于单片机PM2.5监测系统仿真设计 文章目录 一 概要简介设计目标系统组成工作流程仿真设计结论 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 # 基于单片机PM2.5监测系统仿真设计介绍 简介 PM2.5(可吸…...
CRM系统中的联系人是什么?如何进行联系人管理?
上手CRM系统前掌握专业术语是必要的功课,在第一次使用CRM系统时小编和大家一样,分不清楚线索、联系人、客户、商机之间的关系,今天我们就来着重分享一下CRM中联系人是什么?如何进行联系人管理? CRM系统联系人是指能够…...
uniapp:如何实现点击图片可以全屏展示预览
这个需要使用uniapp中的api:uni.previewImage,使用方法如下 1、html <template><view><image src"图片路径" click"preview"></image></view> </template> 2、JavaScript <script> e…...
python运行hhsearch二进制命令的包装器类
hhsearch 是 HMM-HMM(Hidden Markov Model to Hidden Markov Model)比对方法的一部分,属于 HMMER 软件套件。它用于进行蛋白质序列的高效比对,特别适用于检测远缘同源性。 以下是 hhsearch 的一些主要特点和用途: HMM…...
Java 网络编程、e-mail、多线程编程
一、Java 网络编程: 网络编程时指编写运行在多个设备的程序,这些设备通过网络连接起来。 Java.net包中的J2SE的API包含有类和接口,提供低层次的通信细节。 java.net 包中提供了两种常见的网络协议的支持: TCP:TCP&…...
为虚幻引擎开发者准备的Unity指南
目录 1.前言2.编辑器2.1 Scene 视图(视口)2.2 Game 视图 (Play in Editor)2.3.Hierarchy 窗口 (World Outliner)2.4 Project 窗口(Content Browser)2.5 Inspector (Details)2.6 Console(消息视图/输出日志)2.7 Modes 面板在哪里&a…...
Vue 2使用element ui 表格不显示
直接修改package.json文件 把这两个依赖修改成对应的 删除node_modules 重新安装依赖 重启...
C++学习 --文件
文件操作步骤: 1, 包含头文件#include<fstream> 2, 创建流对象:ofstream ofs 3, 打开文件:ofs.open("文件路径", 打开方式) 4, 写数据:ofs <<…...
java/Android:将字符串按数量分割
分割成数组 import java.util.Arrays;/*** Java将字符串按照指定长度分割成字符串数组*/ public class StringUtils {public static void main(String[] args){String data "227d77a7a244c7b2be3180f2d46be352f56ddf92866692f2cac797358097e5a3e90f6d20bb96bc516a4ab9c0…...
JVM 监控命令详解
文章目录 JDK 中与常用命令行工具jpsjstatjinfojmap导出 dump 文件查看堆内存信息 jstack JVM 可视化分析工具 JDK 中与常用命令行工具 jps 查看当前服务器正在执行的 Java 进程 $> jps 7584 Application 16433 AdminApplication 14209 Jps 5813 Bootstrap 5575 TestApplic…...
本地大模型Web界面部署指南:基于Hermes WebUI的实践
1. 项目概述:一个为本地大模型打造的现代化Web界面如果你最近在折腾本地部署的大语言模型,比如Llama、Mistral或者Qwen系列,那你大概率经历过这样的场景:好不容易在命令行里把模型跑起来了,看着一行行日志滚动…...
为ChatGPT-on-Wechat机器人扩展API能力:Apilot插件安装与实战指南
1. 项目概述:为你的微信聊天机器人注入实用API能力如果你正在使用基于ChatGPT-on-Wechat框架搭建自己的微信聊天机器人,并且觉得它除了对话之外,功能上还差点意思,那么这个名为Apilot的插件,可能就是你要找的那块“拼图…...
为 OpenClaw 配置 Taotoken 作为模型供应商的详细步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为 OpenClaw 配置 Taotoken 作为模型供应商的详细步骤 OpenClaw 是一个流行的开源智能体框架,它允许开发者轻松构建和运…...
基于WebView2的ChatGPT桌面客户端开发:从原理到实践
1. 项目概述与核心价值最近在折腾一个需要集成AI对话能力的桌面应用,发现了一个挺有意思的开源项目——Akuma1tko/ChatGPT-WebView。简单来说,它就是一个用C#写的、把ChatGPT的Web版界面(也就是我们平时在浏览器里用的那个chat.openai.com&am…...
当AI开始「嫌贫爱富」
GPT-5.5涨价三倍,SpaceX花600亿美元买一个编程工具。这两个新闻放在一起,揭示了一个被大多数人忽略的事实—— 不是AI越来越便宜,是AI市场正在剧烈撕裂。 如果你最近关注AI新闻,可能会有一种错觉:AI正在变得越来越便宜、越来越亲民。 DeepSeek V4开源免费,国产大模型卷出…...
3步让你的老旧Mac焕发新生:OpenCore Legacy Patcher终极升级指南
3步让你的老旧Mac焕发新生:OpenCore Legacy Patcher终极升级指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 想让2007年后的老旧Mac也能流畅运…...
5分钟实践指南:用MiGPT将小爱音箱升级为AI语音助手深度配置
5分钟实践指南:用MiGPT将小爱音箱升级为AI语音助手深度配置 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 智能家居设备正从简单的指…...
MongoDB防注入攻击指南
本文介绍使用 Polars 原生方法(如 with_columns() 配合 pl.lit())向现有 DataFrame 批量添加空列,避免低效的 cross join 操作,提升代码可读性与执行性能。 本文介绍使用 polars 原生方法(如 with_columns() 配合…...
OpenClaw Monitor 3D:基于Three.js的AI智能体实时3D监控平台
1. 项目概述:一个让AI会话“活”起来的3D监控世界 如果你正在使用OpenClaw这类AI智能体框架,那么你一定遇到过这样的困扰:后台跑着几十个会话,你只能通过冰冷的日志文件或者简陋的命令行输出来猜测它们的状态。哪个会话正在“思考…...
Phi-4多模态AI模型:15B参数实现高效视觉推理
1. 模型定位与技术背景Phi-4-reasoning-vision-15B是当前多模态AI领域最具突破性的开源模型之一,其核心创新在于将语言模型的逻辑推理能力与视觉理解能力深度融合。不同于传统视觉语言模型仅实现简单的图文匹配,该模型在复杂视觉推理任务(如图…...
