JavaScript(ES5)字符串的方法

字符串的方法

toString 、indexOf 、lastIndexOf 、toUpperCase 、toLowerCase 、split
、replace 、substr 、substring

toString-----其他类型转换为字符串

let num = 837;
let str = num.toString();
console.log(str);

// 语法:
字符串变量名=非字符串变量.toString();

【注】不改变字符串的原始内容,要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身

indexOf-----查找字符

let str = 'asdfgh';

let res1 = str.indexOf('s');// 查询字符串s
let res2 = str.indexOf('h',3);// 查询起始位置从索引下标3开始

// 语法:
字符串.indexOf(形参1,形参2)

【注】
形参1:需要查询的字符(只写一个参数,就是查询这个字符从索引下标0开始到字符串的length-1结束)
形参2:查询起始位置的索引下标
返回值:匹配字符串的索引下标;匹配不到字符返回-1,表示没有找到;如果字符串中有多个匹配的内容,indexOf()返回的值是第一个匹配到的内容的索引下标

lastIndexOf-----查找从后往前第一个字符串

let let str = 'asdfgh';
let res1 = str.lastIndexOf('d');// 从尾部开始匹配到第一个字符d
let res2 = str.lastIndexOf('d',5); //从索引下标5的位置开始向前找d字符

// 语法:
字符串.lastIndexOf(参数1,参数2);

【注】
参数1:所要查询的字符
参数2:起始索引下标开始位置向前查询字符(可不写,默认是从尾部开始查询)

toUpperCase-----转换为大写

let str = ' abcdefg';
str = str.toUpperCase();

//语法:
字符串.toUpperCase();

【注】不改变字符串的原始内容,改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身

toLowerCase-----转换为小写

let str = ' abcdefg';
str = str.toLowerCase();

// 语法:
字符串.toLowerCase();

【注】 不改变字符串的原始内容,改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身;
一般是做验证码判断时,会统一输入的内容和验证码为都是大写或者小写,再来做比较判断

split-----转换为数组

let str = 'asdfgh';
let arr = str.split();

// 语法:
字符串.split('间隔字符');

【注】一般配合数组方法join一起使用

replace-----替换

let str = 'asdfghjsdfgh';
let newStr = str.replace(f,l);

// 语法:
字符串.replace(参数1,参数2);

【注】
参数1:原字符串中的字符;
参数2:要换成的字符; 不改变字符串原始内容,要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身;
默认执行懒惰模式,只替换第一个符合规范的内容

substr-----字符串截取

let str = 'abcdefg';
let res1 = str.substr(2);// 从索引下标2开始截取后边所有的字符
let res2 = str.substr(1,3);// 从索引下标1开始截取三个字符

//语法 :
字符.substr(参数1,参数2);

【注】
参数1:指定截取的索引下标位置(如果是负数,就是从倒数第几个开始截取);
参数2:指定截取的字符串长度(如果是负数,截取的结果是空字符串);
【总结】
参数1:指定截取的起始位置
             正数 0 :索引下标
             负数 :倒数第几个字符
参数2:指定截取字符个数
             不写,默认截取至字符串结束
             正数,0 :截取字符的个数
             负数 :截取结果是空字符

substring-----字符串截取

let str = 'abcdefg';
let res1 = str.substring(3);// 从索引下标3开始截取后边的所有字符串
let res2 = str.substring(2,4);// 从索引下标2开始到索引下标4之前结束截取字符串

// 语法:
字符串.substring(参数1,参数2);

【注】
参数1:截取起始字符的索引(包含);
参数2:截取结束字符串的索引下标(不包含,若不写表示从截取起始字符索引下标到结束); 包前不包后

热门文章

暂无图片
编程学习 ·

js 的递归写法 代码的健壮性

这几天参加面试,有个关于递归的问题,之前学红皮书的手后,看过也写过代码,但是时间长了不用就会忘记,翻书肯定没有自己记住效率高;首先解释一下为什么这么写;//因为函数的本质是一个对象,fun是声明在栈内存中,其中保存一个地址,系统通过地址可以在堆中找到一个Function的对象;fu…
暂无图片
编程学习 ·

微信小程序引入vant Weapp组件

微信小程序引入vant Weapp组件 步骤: 1. 打开终端: 先初始化: npm init -y 然后进行安装 npm install --productionnpm i @vant/weapp -S --production2. 需要在微信开发者工具,点击工具==>>构建npm 并点击详情,勾选 使用 npm 模块 选项,构建完成后,即可引入组件…
暂无图片
编程学习 ·

AcWing - 90. 64 位整数乘法 【 位运算 】题解

目录1.题目2.代码 1.题目 求 a 乘 b 对 p 取模的值。 输入格式 第一行输入整数a,第二行输入整数b,第三行输入整数p。 输出格式 输出一个整数,表示a*b mod p的值。 数据范围 1≤a,b,p≤1018 输入样例: 3 4 5 输出样例: 2 2.代码 #include<iostream> #include<cstd…
暂无图片
编程学习 ·

Spark1.x升级Spark2.x常见异常Kafka篇【TopicMetadataRequest】

一.原因分析 当Spark从1.x升级到2.x时,如果使用SparkStreaming加载Kafka的数据,即使Kafka版本没有变化【一般会有所升级】,对应的spark-streaming-kafka也必须升级到对应版本,访问方式也会有所变化。 此处是从Spark1.6.0升级到Spark2.4.3,Kafka略有升级【从2.1.0升级到2.2…
暂无图片
编程学习 ·

Python中%r和%s的相同点和不同点

1、在处理布尔型或者数字型时,二者是没有区别的 (1)数字型 I am %r years old%22#%r ‘I am 22 years old’ I am %s years old%22#%s‘I am 22 years old’ This building is %r m tall%22.35#%r‘This building is 22.35 m tall’ This building is %s m tall%22.35#%s‘Thi…
暂无图片
编程学习 ·

移动自动化测试-Appium基础操作API

Appium自动化测试框架 学习目标: 1.能够安装Appium桌面客户端 2.能够安装Appium-python库 Appium介绍: Appium是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用和混合型应用,且是垮平台的,可用于Android和IOS操作系统。 重要的是Appium是跨平台的,可以针对…
暂无图片
编程学习 ·

智慧RFID工地人员定位-工地人员定位系统-新导智能

随着RFID技能的逐渐老练,RFID工地人员定位系统系在施工项目中越来越多地被运用到实践当中。尤其是在工地分布范围广,现场环境恶劣的项目施行现场,为了对施工现场进行安全规范办理,在施工项目应用根据RFID工地人员定位体系,能够实时监测各个施工现场的人员状况,统一办理,…
暂无图片
编程学习 ·

kafka事务transactional.id相关

https://www.cnblogs.com/jingangtx/p/11330338.htmlhttps://blog.csdn.net/oTengYue/article/details/104727512/看了这两篇关于事务id的资料,我有些疑问:两篇文章里都讲了transactional.id是用户自己设置的,而且transactional.id与producerId在事务管理器中是一一对应关系…
暂无图片
编程学习 ·

用C语言解一元二次方程式的根

#include<stdio.h> #include<math.h> //需要用到一个sqrt()函数,该函数功能用于开方;//该函数运算结果数据类型为double类型;如果涉及到运算请将数据类型定义成浮点型! int main () {float a,b,c,x1,x2;printf("请分别输出方程式的系数,中间以空格分隔\n&…
暂无图片
编程学习 ·

VINS-Mono理论推导1

ReferenceVINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator. Quaternion Kinematics for Error-State KF. 预积分的推导 预积分是VINS-Mono中十分重要的一个步骤,主要涉及的是IMU的运动方程,下面对这部分进行一个简单的推导,主要使用的是ESKF…
暂无图片
编程学习 ·

腾讯招聘信息 爬取案例

前段时间看了了scrapy,有一个案例是爬取腾讯招聘信息的,当时看了腾讯网站,已经更新换代了,于是自己看了看,写下一个实际可行的demo 首先是观察腾讯招聘首页不在页面element内,但是依旧很容易就可以发现你要的信息观察url,可以提取出 https://careers.tencent.com/tencen…
暂无图片
编程学习 ·

SpringBooy集成shiro+cas单点登录

1、引入需要的依赖<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-cas</artifactId><version>1.3.2</version></dependency><dependency><groupId>org.apache.shiro</groupId><arti…
暂无图片
编程学习 ·

过拟合和欠拟合

过拟合和欠拟合一、什么是过拟合和欠拟合?二、过拟合和欠拟合问题1、欠拟合:2、过拟合:2.1 减少过拟合总结:三、产生过拟合原因四、解决过拟合方法1. 正则化2. 剪枝处理3. 提前终止迭代4. 权值共享5. 增加噪声6. Batch Normalization7. Bagging和Boosting8. Dropout 一、什…
暂无图片
编程学习 ·

功能丰富的推荐系统

功能丰富的推荐系统 Feature-Rich Recommender Systems 交互数据是用户偏好和兴趣的最基本指示。在以前引入的模型中起着至关重要的作用。然而,交互数据通常非常稀疏,有时可能会有噪声。为了解决这个问题,可以在推荐模型中集成一些附加信息,比如条目的特性、用户的概要信息…
暂无图片
编程学习 ·

从单机至亿级流量大型网站系统架构的演进过程

阶段一、单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate、maven+spring+springmvc+mybatis;最后再选择一个数据库…
暂无图片
编程学习 ·

期货软件开发与平台搭建注意事项

期货软件开发和期货平台搭建需要注意很多内容,关系到后期运营的是否正常稳定。现在市面上的很多的期货交易系统软件平台,基本都支持支持PC、安卓APP端,微信端、且具备风控系统、杠杆系统、交易系统、在线出入金、后台管理系统、代理系统、股票数据行情等功能。但是行业鱼龙混…