当前位置: 首页 > 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语言编写,支持网络,可基于内存也可以持久化…...

[论文速览] Sparks of Artificial General Intelligence: Early experiments with GPT-4

Sparks of Artificial General Intelligence: Early experiments with GPT-4 2023.3.22 微软官方发布了目前人类史上最强AI模型 GPT-4 的综合能力评估论文&#xff0c;总所周知&#xff0c;2023年是通用人工智能&#xff08;Artificial General Intelligence&#xff0c;AGI&a…...

舔狗日记:学姐生日快到了,使用Python把她的照片做成视频当礼物

舔狗日记1前言一、需要调入的模块二、实现合并多张图片转成 mp4 视频三、优化改进一下总结前言 这不是学姐生日快到了&#xff0c;于是我学了一手使用Python来把学姐的照片生成为视频&#xff0c;到时候给她一个惊喜&#xff01; 好了先不舔了&#xff0c;下面分享一下用pytho…...

从《移动互联网应用程序(App)收集使用个人信息自评估指南》看个人信息保护着力点

为指导应用运营者对自身收集、使用个人信息行为进行自查自纠&#xff0c;2019年3月&#xff0c;应用专项治理工作组发布了《应用违法违规收集使用行为自查自查指南》。个人信息”。随着对App违法收集、使用个人信息行为评价工作的开展和深入&#xff0c;《App违法违规收集、使用…...

电脑0x0000001A蓝屏错误怎么U盘重装系统教学

电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug&#xff0c;只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢&#xff1f;来看看以下的详细操作方法教学吧。 准备工作&…...

Day939.如何小步安全地升级数据库框架 -系统重构实战

如何小步安全地升级数据库框架 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于如何小步安全地升级数据库框架的内容。 当消息组件的数据存储都是采用 SQL 拼写的方式来操作&#xff0c;这样不便于后续的扩展及维护。除此之外&#xff0c;相比前面的其他重构&#x…...

2023 年十大 API 管理趋势

作者郑玩星&#xff0c;API7.ai 技术工程师。 阅读原文 什么是 API&#xff1f;什么是 API 管理&#xff1f; 近期&#xff0c;AIGC&#xff08;AI Generated Content&#xff0c;生成式人工智能&#xff09;在各行业的应用日趋普及。AIGC 服务提供商通过 API 向外部提供其内…...

计算机网络微课堂1-3节

目录 1. TCP/TP协议​编辑 2. 3.调制解调器 4.因特网的组成 5.电路交换 6.分组交换 重要常用 7.报文交换 8.总结电路交换 报文交换和分组交换 9. 1. TCP/TP协议 2. ISP 网络提供商 ISP的三层 国际 国家 和本地 3.调制解调器 什么是调制解调器&#xff0c;它存在的…...

[Eigen中文文档] Array类与元素操作

文档总目录 本文目录什么是Array类&#xff1f;Array类型访问Array中的值加法与减法Array乘法其他按元素操作的运算array和matrix表达式之间的转换英文原文(The Array class and coefficient-wise operations) 本页旨在提供有关如何使用Eigen的Array类的概述和说明。 什么是A…...

python学习,全球有哪些特别好的社区推荐呢?

Surfshark可以访问全球社区学习的surfshark工具使用方法教程&#xff1a;qptool.net/shark.html 以下是一些全球范围内比较受欢迎的 Python 学习社区&#xff1a; 中文社区&#xff1a;csdn.net 优势&#xff1a;本土国语社区&#xff0c;获得相关知识与经验便利。 Python官…...

LC-1042. 不邻接植花(四色问题(染色法))

1042. 不邻接植花 难度中等198 有 n 个花园&#xff0c;按从 1 到 n 标记。另有数组 paths &#xff0c;其中 paths[i] [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中&#xff0c;你打算种下四种花之一。 另外&#xff0c;所有花园 最多 有 3 条路径可以进入…...