当前位置: 首页 > news >正文

JS字符串对象

JS字符串对象

1.1 内置对象简介

在 JavaScript 中,对象是非常重要的知识点。对象可以分为两种:一种是“自定义对象”外一种是“内置对象”。自定义对象,指的是需要我们自己定义的对象,和“自定义函数”是一些道理;内置对象,指的是不需要我们自己定义的(即系统已经定义好的)、可以直接使用的对象“内置函数”也是一样的道理。
作为初学者,我们先学习内置对象,然后在学习 JavaScript 进阶的内容时,再学习自定义对象。在 JavaScript 中,常用的内置对象有4种。
字符串对象: String。 数组对象:Array。 日期对象:Date。数值对象:Math。
这4个对象都有非常多的属性和方法,对于不常用的,我会一笔带过,留出更多篇幅给大家讲解最实用的,这样可以大幅度地提高小伙伴们的学习效率。实际上,任何一门 Web 技术的知识点都非常多,但是我们并不需要把所有的知识点都记住,只需要记住常用的就可以了。因为大部分内容我们都可以它们列为“可翻问知识”(也就是不需要记忆,等需要用的时候再回来翻一翻就可以获取的那部分内容)
在这一章中,我们先来学习一下字符串对象的常用属性和方法。

1.2 获取字符串长度

在 JavaScript 中,我们可以使用 length 属性来获取字符串的长度。

语法

字符串名.length

说明

调用对象的属性时,我们要用到点运算符(.),可以将其理解为“的”,如 str.length 可以看
成“str 的length(长度)”。
字符串对象的属性有好几个,我们需要掌握的只有length 这一个。获取字符串的长度在实际
开发中用得非常多。

举例:获取字符串长度

 <script>
var str ="I love you!";
document.write("字符串长度是:" + str.length);
</script>

浏览器预览效果如图 所示。

在这里插入图片描述

分析

对于 str 这个字符串,小伙伴数来数去都觉得它的长度应该是 10,怎么输出结果是 11 呢? 这是因为空格本身也是作为一个字符来处理的,这一点我们很容易忽视。”举例:获取一个数字的长度

Document 浏览器预览效果如图 所示。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/73e9d9a00c30448ca6d05d232c427f8c.png#pic_center)

分析

这里我们定义了一个getLenth)函数,用来获取任意一个数字的位数。在var str=n+‘’;一句代码中,让n加上一个空字符,其实就是为了把数字转换成字符串,这样才可以使用字符串对象中的 length 属性。

1.3大小写转换

在JavaScript 中,我们可以使用toLowerCase()方法将大写字符串转化为小写字符串,也可以使用toUpperCase()方法将小写字符串转化为大写字符串。

语法

字符串名.toLowerCase()

字符串名.toUpperCase()

说明

调用对象的方法时,我们也要用到点运算符(.)。但是属性和方法不太一样,方法后面需要加
上小括号(),而属性则不需要。
JavaScript中还有另外两种大小写转换的方法:toLocalLowerCase0和toLocalUpperCase0。
这两种方法很少用到,直接忽略即可。

举例

浏览器预览效果如图 所示。

在这里插入图片描述

1.4 获取某一个字符

在JavaScript 中,我们可以使用 charAt0 方法来获取字符串中的某一个字符。

语法

字符串名.charAt(n)

说明

n是整数,表示字符串中的第(n+1)个字符。注意,字符串第1个字符的下标是0,第2个字符的下标是1,…,第 n 个字符的下标是(n-1),以此类推

举例: 获取某一个字符

浏览器预览效果如图 所示。

在这里插入图片描述

分析

在字符串中,空格也是作为一个字符来处理,对于这一点,我已经在前面说过。

举例:找出字符中小于某个字符的所有字符

浏览器预览效果如图 所示。

在这里插入图片描述

分析

在这里,我们先初始化了两个字符串;str和 result。其中,result是一个空字符串,用于保存结果。然后我们在f or 循环中 遍历str,并且使用 charAt( ) 方法获取当的的字符,再 与’s’比较后,如果当前字符小于“s”则将当前字符保存到result 中去。

两个字符之间比较的是 ASCIl 码的大小。对于 ASCll,请小伙伴们自行搜索一下,这里不展开介绍。注意,空格在字符串中也是被当成一个字符来处理的。

1.5截取字符串

在JavaScript 中,我们可以使用 substring() 方法来截取字符串的某一部分

语法

字符串名.substring(start,end)

说明

stat 表示开始位置,end 表示结束位置。stat 和 end 都是整数,一般都是从0开始,其中end大于 start。
substring(start,end)的截取范围为“[start,end)”,也就是包含 stat,但不包含 end。其中end 可以省略。当 end 省略时,截取的范围为“stat 到结尾”。

举例

浏览器预览效果如图 所示。
在这里插入图片描述

分析

使用 substring(stat,end)方法截取字符串的时候,表示从 stat 开始(包括 start),到en结束(不包括 end),也就是集合[start,end)。一定要注意,截取的下标是从 0 开始的,也就是说0表示第1个字符,1表示第2个字符…n 表示第(n+1)个字符。对于字符串的操作,凡是涉及下标的,都是从0开始。有些小伙伴会问:我都记不住什么时候包含什么时候不包含,这该怎么办? 没关系,你在使用之前,可以自己写个小例子测试一下。

1.6替换字符串

在JavaScript 中,我们可以使用 replace0 方法来用一个字符串替换另外一个字符串的某一部分。

语法

字符串名.replace(原字符串,替换字符串)

字符串名.replace(正则表达式,替换字符串)

说明

replace 方法有两种使用形式:一种是直接使用字符串来换,另外一种是使用正则表来替换。无论是哪种形式,“替换字符串”都是第 2个参数。

举例:直接使用字符串替换

浏览器预览效果如图 所示。

在这里插入图片描述

分析

str.replace(“javascript”,“haohao”)表示用"haohao" 替换 str 中的"javascript”。

举例

浏览器预览效果如图 所示。
在这里插入图片描述

分析

replace(loser/g,"hero)表示使用正则表达式 loser/g, 替换字符串hero,来将字符串中的所有字符“loser”替换成“hero”。有些小伙件会觉得 str.replace(loser/g,"hero”)不就等价于 str.replace(loser , “heron 吗? 其实这两个是不一样的,大家可以测试一下。前者会换所有的"loser”,而后者只会替换第1个loser”在实际开发中,如果我们直接使用字符串无法实现替换,记得考虑使用正则表达式。 由于内容较多这里不再详细展开。

1-7分割字符串

在JavaScript 中,我们可以使用 split ( )方法把一个字符串分割成一个数组,这个数组存放的是原来字符串的所有字符片段。有多少个片段,数组元素个数就是多少。

这一节由于涉及数组对象,所以建议小伙伴们先跳过这一节,等学习了“ 数组对象”后再回来学习这一节。因为,很多时候技术与技术之间都有着藕断丝连的关系,将某一技术一刀切分开来介绍往往是做不到的,了解这一点非常重要。小伙伴们在学任何技术时,如果发现有些内会看不懂,可以继续学下去,学到后面,知识点就串起来了,这时再回头复习前面的内容,很多问题都能迎刃而解了。

语法

字符串名。split(”分割符“)

说明

分割符可以是一个字符、多个字符或一个正则表达式。此外,分割符不作为返回的数组元素的部分。
有点难理解?我们还是先来看一个例子

举例

浏览器预览效果如图 所示。

在这里插入图片描述

分析

str.split(“”)表示使用英文逗号作为分割符来分割 str 这个字符串,结果会得到一个数组[“HTML"“CSS”"JavaScript”],我们把这个数组赋值给变量 arr 保存起来。可能有人会问: 为什么分割字符串之后,系统会把这个字符串转换成一个数组?这是因为转换成数组之后,我们就能使用数组的方法来更好地进行操作。

上面的这个例子,也可以使用 for 循环来输出,实现代码如下

举例:str.split(’ ')有空格

浏览器预览效果如图 所示。

在这里插入图片描述

分析

str.split(" ")表示用空格来分割字符串。在字符串中,空格也是作为一个字符来处理的。

str.split(’ ‘)的两个号之间是有一个空格的。str.split(’ ')(有空格)是带有1个字符的字符串

str.split(’ ')(无空格)是带有 0个字符的字符串,也叫空字符串。两者是不一样的,我们可以。
下面这个例子来对比理解。

举例:str.split(’ ')无空格

浏览器预览效果如图 所示。

在这里插入图片描述

分析

注意,split(" ")和 splt(‘’)是不一样的。前者两个引号之间有空格,表示用空格作为分割符来分副。后者两个引号之间没有空格,可以用来分割字符串的每一个字符。这个技巧非常棒,也用的很多,小伙伴们可以记一下。
实际上,split()方法有两个参数: 第1个参数表示分符,第2个参数表示获取“分割之后前n个元素”。第2 个参数我们很少用,了解一下即可。

举例

控制台预览效果如图 所示。

在这里插入图片描述

1—8 检索字符串的位置

在JavaScript 中,使用 indexOf()方法可以找出“某个指定字符串”在字符串中“首次出现”的下标位置,使用 lastindexOf0 方法可以找出“某个指定字符串”在字符串中“最后出现”的下标位置

语法

字符串名.indexOf(指定字符串)

字符串名.lastIndexof(指定字符串)

说明

如果字符串中包含“指定字符串”,indexOf() 会返回指定字符串首次出现的下标,而lastindexOf( )会返回指定字符串最后出现的下标;如果字符串中不包含“指定字符串”,indexOf(或lastlndexOf()会返回-1。

举例: indexOf()

浏览器预览效果如图 所示。

在这里插入图片描述

分析

对于 str.indexOf(“lye"),由于 str 不包含“lye”,所以返回-1。对于strindexOf(“Lvye”),由于 str 包含“Lvye”,所以返回“Lvye”首次出现的下标字符串的位置是从0开始的。
对于str.indexOf(Lvyer),由于 str 不包含“Lvyer”,所以返回-1。需要注意的是包含“Lvye”,但不包含“Lvyer”。
在实际开发中,indexOf()用得非常多,我们要重点掌握。对于检索字符串,除了 index0f()这个方法外,JavaScript还为我们提供了另外两种方法: match()和search()。这3种方法大同小异,我们只需要掌握indexOf()就可以了。为了减轻记忆负担,对于 match()和 search( ),我们直接忽略。

举例

浏览器预览效果如图 所示。

在这里插入图片描述

分析

indexof( )和lastindexof()不仅可以用于检索字符串还可以用于检索单个字符串,为了减轻记忆负担,对于 match()和 search( ),我们直接忽略。

相关文章:

JS字符串对象

、 JS字符串对象 1.1 内置对象简介 在 JavaScript 中&#xff0c;对象是非常重要的知识点。对象可以分为两种:一种是“自定义对象”外一种是“内置对象”。自定义对象&#xff0c;指的是需要我们自己定义的对象&#xff0c;和“自定义函数”是一些道理;内置对象&#xff0c;…...

Linux系统对文件及目录的权限管理(chmod、chown)

1、身份介绍 在linux系统中&#xff0c;对文件或目录来说访问者的身份有三种&#xff1a; ①、属主用户&#xff0c;拥有者&#xff08;owner&#xff09;文件的创建者 ②、属组用户&#xff0c;和文件的owner同组的用户&#xff08;group&#xff09;&#xff1b; ③、其他用…...

半透明反向代理 (基于策略路由)

定义 半透明反向代理一般是指 代理本身对于客户端透明&#xff0c;对于服务端可见。 从客户端视角看&#xff0c;客户端访问的还是服务端&#xff0c;客户端不知道代理的存在。 从服务端视角看&#xff0c;服务端只能看到代理&#xff0c;看不到真实的客户端。 示意图 客户端…...

课前测5-超级密码

目录 课前测5-超级密码 程序设计 程序分析 课前测5-超级密码 【问题描述】 上次设计的“高级密码”被你们破解了,一丁小朋友很不服气! 现在,他又设计了一套更加复杂的密码,称之为“超级密码”。 说实话,这套所谓的“超级密码”其实也并不难: 对于一个给定的字符…...

QML控件--Menu

文章目录一、控件基本信息二、控件使用三、属性成员四、成员函数一、控件基本信息 二、控件使用 import QtQuick 2.10 import QtQuick.Window 2.10 import QtQuick.Controls 2.3ApplicationWindow{visible: true;width: 1280;height: 720;Button {id: fileButtontext: "Fi…...

002:Mapbox GL更改大气、空间及星星状态

第002个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中更改大气、空间及星星状态 。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共71行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:…...

2022年第十三届蓝桥杯题解(全)C/C++

A题就是一个简单的进制转化&#xff0c;代码实现如下&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10;int main() {int x 2022;int a 1;int res 0;while(x) {res (x % 10) * a;a a * 9;x / 10;}cout << res;return 0; } B题有…...

【cmake学习】find_package 详解

find_package 主要用于查找指定的 package&#xff0c;主要支持两种搜索方法&#xff1a; Config mode&#xff1a;查找 xxx-config.cmake或 xxxConfig.cmake的文件&#xff0c;如OpenCV库的OpenCVConfig.cmakeModule mode&#xff1a;查找Findxxx.cmake文件&#xff0c;如Ope…...

WEB攻防-通用漏洞PHP反序列化POP链构造魔术方法原生类

目录 一、序列化和反序列化 二、为什么会出现反序列化漏洞 三、序列化和反序列化演示 <演示一> <演示二> <演示二> 四、漏洞出现演示 <演示一> <演示二> 四、ctfshow靶场真题实操 <真题一> <真题二> <真题三> &l…...

Baumer工业相机堡盟工业相机如何通过BGAPISDK里的图像处理库进行图像转换(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK进行图像转换&#xff08;C&#xff09;Baumer工业相机Baumer工业相机的SDK里图像格式转换的技术背景Baumer工业相机通过BGAPI SDK进行图像转换调用BGAPI SDK的图像转换库ImageProcessor调用BGAPI SDK建立图像调用BGAPI SDK转换图像…...

JD开放平台接口(获得JD商品详情, 按关键字搜索商品,按图搜索京东商品(拍立淘), 获得店铺的所有商品,获取推荐商品列表, 获取购买到的商品订单列表)

参数说明 通用参数说明 url说明 https://api-gw.onebound.cn/平台/API类型/ 平台&#xff1a;淘宝&#xff0c;京东等&#xff0c; API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_api_keysecret:调用secret,测试secret:(不用填写…...

上海亚商投顾:沪指震荡反弹 游戏、传媒概念股再度大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪大小指数今日走势分化&#xff0c;沪指向上震荡反弹&#xff0c;创业板指一度跌近1%&#xff0c;黄白二线大幅背离。…...

C/C++ 玩转StoneValley库:从入门到精通

C/C 玩转StoneValley库&#xff1a;从入门到精通引言&#xff08;Introduction&#xff09;StoneValley库简介&#xff08;Overview of StoneValley Library&#xff09;为什么要学习StoneValley库&#xff08;Why Learn StoneValley Library in C&#xff09;StoneValley库安装…...

CentOS7-部署Tomcat并运行Jpress

1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8&#xff0c;配置服务启动脚本&#xff0c;部署jpress应用。1、简述静态网页和动态网页的区别 静态网页&#xff1a; 请求响应信息&#xff0c;发给客户端进行处理&#xff0c;由浏览器进…...

菜鸟程序员的3年心酸逆袭之旅!今天你对我爱搭不理,明天我让你高攀不起!

多年前我以一个菜鸟的身份 进入了一家创业公司 我原本以为公司是这样的 但是实际上是这样的 我进去时 我们部门除开部门老大还有我 也只有我 所以我就这样开始了我的程序员生涯 开始了我的苦逼技术 公司是做电商网站的 因为我是一个菜鸟 所以我接到的第一个任务 就是做一个网页…...

【Scala】异常 隐式转换 泛型

目录 异常 隐式转换 隐式函数 隐式参数 隐式类 隐式解析机制 泛型 泛型上下限 上下文限定 来源&#xff1a; 异常 def main(args: Array[String]): Unit {try {var n 10 / 0}catch {case ex: ArithmeticException>{// 发生算术异常println("发生算术异常&quo…...

1673_MIT 6.828 Homework xv6 lazy page allocation要求翻译

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 在计划表中看到了这样一份作业&#xff0c;做一个简单的翻译整理。原来的页面&#xff1a;Homework: xv6 lazy page allocation (mit.edu) 家庭作业&#xff1a;x…...

六、Locust之TaskSets详解

​ TaskSets是一种结构化测试分层网站/系统的方法。你可以在这里阅读更多关于它的信息。 1.TaskSet class ​ 如果你正在对一个以分层方式构建的网站进行性能测试&#xff0c;有章节和子章节&#xff0c;以同样的方式构建你的负载测试可能是有用的。 ​ 为了这个目的&#x…...

flask_知识点3_css

flask_知识点3_css样式1高度和宽度2行内和块级3字体和颜色4文字对齐方式5浮动6 内边距6 外边距&#xff01;css重点1、css样式2、分析页面布局3、参考别人的成果css引用方式1 在标签上&#xff08;不建议使用&#xff09;// An highlighted block var foo bar;2 在head标签中写…...

Redis_概述_特性_IO模型

本章要点 掌握NoSql数据库的概念和与sql数据库的区别初步了解Redis内存数据库了解Redis内存数据库的优点及其原因掌握Redis的多线程IO模型学习Redis的安装和配置 Redis简介 Redis 全称 Remote Dictionary Server 远程字典服务! 使用C语言编写,支持网络,可基于内存也可以持久化…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

el-amap-bezier-curve运用及线弧度设置

文章目录 简介示例线弧度属性主要弧度相关属性其他相关样式属性完整示例链接简介 ‌el-amap-bezier-curve 是 Vue-Amap 组件库中的一个组件,用于在 高德地图 上绘制贝塞尔曲线。‌ 基本用法属性path定义曲线的路径,可以是多个弧线段的组合。stroke-weight线条的宽度。stroke…...

智能体革命:企业如何构建自主决策的AI代理?

OpenAI智能代理构建实用指南详解 随着大型语言模型&#xff08;LLM&#xff09;在推理、多模态理解和工具调用能力上的进步&#xff0c;智能代理&#xff08;Agents&#xff09;成为自动化领域的新突破。与传统软件仅帮助用户自动化流程不同&#xff0c;智能代理能够自主执行工…...

【向量库】Weaviate概述与架构解析

文章目录 一、什么是weaviate二、High-Level Architecture1. Core Components2. Storage Layer3. 组件交互流程 三、核心组件1. API Layer2. Schema Management3. Vector Indexing3.1. 查询原理3.2. 左侧&#xff1a;Search Process&#xff08;搜索流程&#xff09;3.3. 右侧&…...

服务器中僵尸网络攻击是指什么?

随着网络业务的不断发展&#xff0c;网络攻击的手段也变得越来越多&#xff0c;各个企业都会受到网络攻击的威胁&#xff0c;其中常见的网络攻击主要有DDOS攻击和CC攻击等类型&#xff0c;今天小编则为大家来介绍僵尸网络攻击是指什么&#xff01; 僵尸网络主要是指采用一种或者…...

MYSQL too many connection问题排查和修复

1.连接数据库 mysql -u root -p 1.1 查看mysql路径 如果没有配置mysql的环境变量&#xff0c;可以直接找mysql的安装目录 打开任务管理器-》服务-》Mysql(根据版本不同后面带有数字&#xff0c;找运行的那个) 打开服务->mysql->属性-》可执行文件的路径&#xff0c;…...