『JavaScript』深入理解JavaScript字符串的基础操作与内置方法

news2025/2/4 12:53:17

请添加图片描述

请添加图片描述
📣读完这篇文章里你能收获到

  • 学习了JavaScript中字符串的基本操作
  • 掌握了JavaScript字符串的多种内置方法
  • 了解了JavaScript中的模板字符串和插值表达式
  • 熟悉了如何在JavaScript中使用正则表达式与字符串方法结合

请添加图片描述

文章目录

  • 一、基本操作
    • 1. 创建字符串
    • 2. 字符串长度
    • 3. 字符访问
  • 二、字符串方法
  • 三、实用技巧
    • 1. 字符串模板
    • 2. 正则表达式


在JavaScript中,字符串是一个不可变的字符序列,这意味着一旦创建了一个字符串,就不能改变其内容。本文将详细介绍JavaScript中的字符串技术,包括基本操作、方法和一些实用技巧。

一、基本操作

1. 创建字符串

在JavaScript中,可以使用以下方式创建字符串:

let str1 = "Hello, World!";
let str2 = 'This is a string';
let str3 = `Template literal`;

2. 字符串长度

使用length属性可以获得字符串的长度:

let str = "Hello, World!";
console.log(str.length); // 输出:13

3. 字符访问

可以使用方括号[]来访问字符串中的单个字符:

let str = "Hello, World!";
console.log(str[0]); // 输出:H

注意:JavaScript中的字符串索引是从0开始的。

二、字符串方法

JavaScript为字符串提供了一系列内置方法,以下是一些常用的方法:

方法名描述
charAt(index)返回指定位置的字符
charCodeAt(index)返回指定位置的字符的Unicode编码
concat(string2, …, stringN)连接一个或多个字符串,并返回新的字符串
indexOf(searchValue[, fromIndex])返回指定子字符串首次出现的索引,未找到则返回-1
lastIndexOf(searchValue[, fromIndex])返回指定子字符串最后一次出现的索引,未找到则返回-1
includes(searchString[, position])检查字符串是否包含指定的子字符串,返回布尔值
startsWith(searchString[, position])检查字符串是否以指定的子字符串开头,返回布尔值
endsWith(searchString[, endPosition])检查字符串是否以指定的子字符串结尾,返回布尔值
slice(start[, end])提取字符串的一部分,并返回新的字符串
substring(start[, end])提取字符串的一部分,并返回新的字符串
toLowerCase()将字符串转换为小写
toUpperCase()将字符串转换为大写
trim()删除字符串两侧的空白字符
trimStart()删除字符串左侧的空白字符(ES2019)
trimEnd()删除字符串右侧的空白字符(ES2019)
split(separator[, limit])使用指定的分隔符将字符串分割成数组
`replace(regexpsubstr, newSubstr

以下是一些示例代码:

let str = "Hello, World!";

console.log(str.charAt(0)); // 输出:H
console.log(str.charCodeAt(0)); // 输出:72
console.log(str.concat(" How are you?")); // 输出:Hello, World! How are you?
console.log(str.indexOf("World")); // 输出:7
console.log(str.lastIndexOf("o")); // 输出:8
console.log(str.includes("World")); // 输出:true
console.log(str.startsWith("Hello")); // 输出:true
console.log(str.endsWith("!")); // 输出:true
console.log(str.slice(7, 12)); // 输出:World
console.log(str.substring(7, 12)); // 输出:World
console.log(str.toLowerCase()); // 输出:hello, world!
console.log(str.toUpperCase()); // 输出:HELLO, WORLD!
console.log(str.trim()); // 输出:Hello, World!
console.log(str.split(" ")); // 输出:["Hello,", "World!"]
console.log(str.replace("World", "Everyone")); // 输出:Hello, Everyone!

三、实用技巧

1. 字符串模板

在ES6中引入了模板字符串(Template literals),它使用反引号(`)而不是单引号或双引号来定义字符串。模板字符串可以包含插值表达式,这些表达式会被它们的值替换。

let name = "John";
let greeting = `Hello, ${name}!`; // 输出:Hello, John!

2. 正则表达式

JavaScript中的字符串方法可以与正则表达式一起使用,进行复杂的字符串操作和匹配。

let str = "The quick brown fox jumps over the lazy dog.";

let matches = str.match(/fox/); // 输出:["fox"]
let replaced = str.replace(/the/gi, "that"); // 输出:That quick brown fox jumps over that lazy dog.

请添加图片描述

请添加图片描述

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

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

相关文章

Java架构师系统架构设计实践

目录 1 导语2 架构设计实践本章概述3 架构设计要素概述和规划4 架构设计模式5 架构设计输入6 架构设计输出7 架构设计要素总结 想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语 Java架构师在进行系统架构设计时,需要综合考虑多个方面&#…

洛谷 P2367 语文成绩 刷题笔记

P2367 语文成绩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 差分 令a[i]为b[i]数组的前缀和 a[n]b[1]b[2]b[3].....b[n]; a[n-1]b[1]b[2]b[3].....b[n-1]; 构造差分数组 b[i]a[i]-a[i-1]; 有什么好处 当我们想对a[l]--a[r]范围内所有数据加上一个数x 不必循环 for(i…

C++力扣题目150--逆波兰表达式求值

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个…

前端---html 的基本结构

1. 结构代码 <!DOCTYPE html> <html><head> <meta charset"UTF-8"><title>网页标题</title></head><body>网页显示内容</body> </html>第一行<!DOCTYPE html>是文档声明, 用来指定页…

C# 使用xUnit进行单元测试

目录 写在前面 操作步骤 执行结果 写在前面 xUnit.net 是 NUnit 的作者Jim Newkirk搞的一个新的单元测试框架&#xff0c;目的是解决 NUnit 存在的一些问题和缺点&#xff0c;并在框架中加入一些最佳实践和扩展能力。 主要的改进点如下&#xff1a; 为每个测试方法产生一个…

漏洞复现-泛微OA xmlrpcServlet接口任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

什么是动态IP?静态IP和动态IP有什么区别?

动态IP(Dynamic IP)和静态IP(Static IP)它是指在计算机网络中分配给设备的两种不同类型的IP地址。 动态IP是指每次设备连接到网络时&#xff0c;网络服务提供商(ISP)IP地址的动态分配。当设备重新连接到网络时&#xff0c;它可能会被分配到不同的IP地址。动态IP适用于传统的家…

龙蜥开源操作系统能解决CentOS 停服造成的空缺吗?

龙蜥开源操作系统能解决CentOS 停服造成的空缺吗&#xff1f; 本文图片来源于龙蜥&#xff0c;仅做介绍时引用用途&#xff0c;版权归属龙蜥和相关设计人员。 一、《国产服务器操作系统发展报告&#xff08;2023&#xff09;》称操作系统已步入 2.0 时代&#xff0c;服务器操作…

【Leetcode 25】K 个一组翻转链表 —— 递归

25. K 个一组翻转链表 给你链表的头节点head&#xff0c;每k个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是k的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改…

2024深入评测CleanMyMac X4.14.6破解版新的功能

随着时间的推移&#xff0c;我们的Mac电脑往往会变得越来越慢&#xff0c;存储空间变得越来越紧张&#xff0c;这时候一个优秀的清理工具就显得尤为重要。作为一款备受好评的Mac清理工具&#xff0c;它能够为你的Mac带来全方位的清理和优化。在本文中&#xff0c;我们将深入评测…

Mac 右键拷贝文件失效

问题&#xff1a;Mac 右键拷贝文件失效&#xff0c;有时候拷贝可以成功&#xff0c;有时候拷贝不成功 发现问题所在&#xff1a;开了百度翻译的划词&#xff0c; 解决&#xff1a;把划词关掉就好了&#xff0c;或者设置划词快捷键翻译就好了&#xff0c;反正就不要一划就翻译那…

7.2 uvm_resource_db in UVM

uvm_resource_db是一个类型参数化 type-parameterized的类&#xff0c;它是资源数据库顶部的一个方便层(convenience layer)。这个便利层简化了对低级数据库的访问&#xff0c;并且没有添加新功能。因此&#xff0c;uvm_resource_db不是从uvm_resource类派生的。以下uvm_resour…

点坐标标签的可视化

说明 txt标签中按x&#xff0c;y格式存放点标签&#xff0c;如&#xff1a; 需要将这些点可视化在对应的图片上。 实现 import matplotlib.pyplot as plt# 读取包含点坐标的 txt 文件 file_path E:\projects\json\CDY_2015-berries.txt with open(file_path, r) as file:da…

Tg5032smn:高稳定性105℃高温

TG5032SMN是一款频率范围10MHz ~ 54MHz,具有高稳定的TCXO晶振&#xff0c;可与CMOS或限幅正弦输出。外部尺寸5.0 3.2 1.45mm&#xff0c;超小型,质地轻。该系列晶振的额定工作范围-40℃~&#xfe62;105C内可高稳定性工作&#xff0c;使得信号频率的误差很小。TG5032SMN与其他…

vue虚拟列表展示

效果图 <template><!-- 总体高度区域 --><divref"listWrap"class"m-container"scroll"scrollListener"><div:style"handleContainerHeight()"><!-- 可视区域 --><divclass"m-area":style&…

cmd启动Java项目提示:jar中没有主清单属性

1、问题 2、原因 在IDEA中开发SpringBoot项目并打成jar包&#xff0c; 需要添加springboot打包插件&#xff0c;如果不添加&#xff0c;仅仅用maven进行打包&#xff0c;打成包里面是少文件的。 <build><plugins><!--springboot打包插件--><plugin>&…

你见过最强的软件测试人员有多强?现阶段年薪百万的测试大佬!!!

到底多强&#xff0c;肯定是除了自身技术过硬&#xff0c;还做出了一些推动测试行业发展的事情&#xff0c;这些都是超强的测试人员 有自己的开源项目&#xff0c;而且是世界级的知名开源项目&#xff0c;曾经有幸在某测试大会见到过Appium作者Jonathan 图中三人中间的为Appiu…

Java小案例-Sentinel的实现原理

前言 Sentinel是阿里开源的一款面向分布式、多语言异构化服务架构的流量治理组件。 主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 核心概念 要想理解一个新的技…

CDN 原理

CDN 原理 CND 一般包含分发服务系统、负载均衡系统和管理系统 分发服务系统 其基本的工作单元就是各个 Cache 服务器。负责直接响应用户请求&#xff0c;将内容快速分发到用户&#xff1b;同时还负责内容更新&#xff0c;保证和源站内容的同步。 根据内容类型和服务种类的不…

基于nodemailer实现邮件发送、附件发送、多人发送

文章目录 1、QQ邮箱如何设置授权码2、具体代码 1、QQ邮箱如何设置授权码 QQ邮箱SMTP/IMAP服务 1、点击账号与安全 2、安全设置 3、设备管理&#xff0c;可以查看有多少个授权码 2、具体代码 from 这个参数&#xff0c;有两种写法 qq号qq.com"姓名"<qq号qq.co…