JavaScript基础(数组+正则表达+字符串)

目录

1.数组

1.1创建数组

1.2字面量创建数组

1.3length函数

1.4遍历数组1

1.5遍历数组2语法糖

1.6增删改查

1push

2pop

3unshift("x",'x')

4shift()

5数组的截取

slice()

splice()

6concat

7reverse 

2.内置对象

2.1data

2.2Math对象

2.3字符串

1charAt

2charCodeAt

3concat

4indexOf

5lastIndexOf

6slice

7substring

8split

9toLowerCase

10toUpperCase

3.正则表达式

3.1创建正则对象

3.2字面量创建正则表达式

3.3[ ]

3.4正则量词

4.应用

4.1字符串拆分  (通过正则)

4.2字符串搜索

4.3提取出合适的字符match()

4.4通过在正则替换字符串中的指定内容

4.5其他


1.数组

1.1创建数组

1.2字面量创建数组

1.3length函数

通过 length方法 获取数组长度

1.4遍历数组1

// 遍历数组
    // for (let i = 0; i < arr.length; i++) {
    //     console.log(arr[i])
    // }

1.5遍历数组2语法糖

 // 遍历数组 IE8 以上
    //第一个参数 :当前正在遍历的元素
    //第二个参数 :当前正在遍历的元素索引
    //第三个参数:当前正在遍历的数组
    // arr.forEach(function (value,index,arr) {
    //     console.log(value,index,arr);
    // })

1.6增删改查

1push

 //向数组的末尾追加值 arr.push("xxx");

2pop

 //删除末尾数据 // arr.pop();

3unshift("x",'x')

// 向数组的开头追加一个元素或者多个元素 arr.unshift("11", '222');

4shift()

//删除数组的第一个元素// arr.shift();

5数组的截取

slice()

slice 该方法可以用于从数据提起指定的元素,不会改变原数组
     * 参数
     * 1.截取的开始位置索引 包含开始索引元素(含左不含右)
     * 2.截取的结束位置索引,不包含结束索引元素
     * 可以为负数  -1 表示倒数第一个元素 -2表示倒数第二个元素
let newArr = result.slice(0,1);

Array [ "Hello" ]

splice()

 splice() 可以用于删除数组中指定的元素 该方法会影响到原数组,删除的元素会作为返回值返回

1.表示开始位置索引 2.要删除的元素数量3.第三个及后续参数参数,可以作为新的元素

6concat

concat 可以将两个或者多个数组 连接 并返回一个新的数组 不会对原数组产生影响

数组拼接为字符串// console.log(arr1.join("#-#"));

7reverse 

数组反转 console.log(arr1.reverse());

数组的排序

 var arr = [1,2,5,8,6,5,7,8,9,3]
    /**
     *  如果返回大于0 则元素交换位置
     *  如果返回小于0 则元素位置不变
     *  如果等于0则认为两个元素相同
     */
    arr.sort(function (a,b) {
        return b-a;
    });
    console.log(arr)

2.内置对象

2.1data

var date = new Date();

2.2Math对象

parseInt(Math.random()*10)//0-1的随机数

console.log(Math.round( 1.5));//2四舍五入

console.log(Math.ceil(2.93545))//3向上取整

console.log(Math.floor(2.93545))//2

console.log(Math.PI)//π

2.3字符串

let str = "Hello,World!";

1charAt

str.charAt(0);//H

2charCodeAt

str.charCodeAt(0);//72

3concat

str.concat("你好","世界!")//Hello,World!你好世界!

4indexOf

console.log(str.indexOf(","));//从左向右 找字符串的下标 并返回,5

5lastIndexOf

console.log(str.lastIndexOf(","));从右向左 找字符串的下标 并返回5,因为没有使用结合"你好世界!"的字符串

6slice

console.log(str.slice(0,5));//第一个不能省略截取,第二个参数可以为负数 -1最后一位 -2倒数第二位,Hello

7substring

console.log(str.substring(1,0));//H,如果第二个参数小于第一个参数则 交换位置

8split

let result = str.split(",");//字符串转为数组,Array [ "Hello", "World!" ]//转换为小写

9toLowerCase

10toUpperCase

3.正则表达式

3.1创建正则对象

1.正则表达式  2.匹配模式

var reg = new RegExp("ab","i");

var str = "Abc";

console.log(reg.test(str));//true,

3.2字面量创建正则表达式

// var reg = /a/i;1.正则表达式  2.匹配模式

3.3[ ]

[bev]  bev是或者关系
// 检查一个字符串 是否 包含 abc  aec  avc

// var reg = /a[bev]c/

// var reg  = /[^A-z]// var str = '#';

3.4正则量词

() 表示整体
{n} 正好出现n次
(ab){3}/ ab 出现三次(abababbc) 》》 true
{m,} 最少出现m次 最多无上限
{m,n} 最少出现m次 最多n层
+ 至少出现一次
* 0个 或者 多个 {0,}
? 0个或者一个 {0,1}

\w 表示 字母 数字 _ 类似 [A-z0-9_]

/^开始  $结束/
\W 表示 除了字母 数字 _ [^A-z0-9_]
\d 表示 任意的数字 [0-9]
\D 表示 除了 任意的数字 [^0-9]
\s 空格
\S 除了空格
 \b 单词边界
 \B 除了单词边界

\. 表示 .
\\ 表示 \

4.应用

4.1字符串拆分  (通过正则)

    // var str = "1a2b3c4d5e6f8t9y7";
    // var result = str.split(/[A-z]/);
    // console.log(result)

输出结果:Array(9) [ "1", "2", "3", "4", "5", "6", "8", "9", "7" ]

4.2字符串搜索

返回遇到第一个符合正则的字符串下标:var result = str.search(/a[bef]c/);abc|aec|afc

4.3提取出合适的字符match()

var str = "1a2b3c4d5e6f8t9y7AUHJKSUR";

var result = str.match(/[a-z]/ig);

console.log(result);

输出结果:Array(16) [ "a", "b", "c", "d", "e", "f", "t", "y", "A", "U", … ]

4.4通过在正则替换字符串中的指定内容

// var str = "1a2b3c4d5e6f8t9y7AUHJKSUR";
// 1.要被替换的内容 2.新的内容

// var result = str.replace(/[a-z]/gi,'$'); // console.log(result);

4.5其他

        // var str = 'e';
        // var reg = /^\D$/
        // console.log(reg.test(str));

        // 去除字符中中的前后空格
        // var str = "  hello zhangsan ";
        // var reg = /^\s*|\s*$/g
        // console.log(str.replace(reg,""))

        // 检查一个字符串中时候含有zhangsan
        // var str = "hello zhangsan";
        // var reg = /\bzhangsan\b/;
        // console.log(reg.test(str))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年12月20日历史上的今天大事件早读

1722年12月20日 康熙皇帝驾崩 1803年12月20日 法国正式将新奥尔良移交给美国 1860年12月20日 南卡罗来纳州宣布脱离美国 1917年12月20日 全俄肃反委员会成立 1928年12月20日 国民党与英国签订中英关税条约 1939年12月20日 德“施佩伯爵”号遭英舰围困自沉 1945年12月20日…

Poi实现复杂Excel导出,理解POI操作Excel思路!!!

前言 对于简单excel报表导出&#xff0c;有很多简单的工具如easypoi&#xff0c;而且现在网上已经有很多工具类整合easypoi使用起来非常方便。但是简单的弊端往往无法适配一些负责场景&#xff0c;而我们实际生产中面临的都是客户自定以的一个负责报表导出&#xff0c;这是利用…

搭建 ElasticSearch 集群环境

安装基础环境 我们用虚拟机创建出3台机器&#xff0c;查看centos版本为7.9 [roots1 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (AltArch)下载相关命令 yum -y install vim* yum -y install net-tools yum -y install lsof yum -y install wget yum -y ins…

对GPU进行压力测试

GPU压力测试工具安装指导&#xff08;RHEL8.2&#xff09; - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/443165016 1、下载gpu-burn工具 下载地址&#xff1a;https://github.com/wilicc/gpu-burn 2、上传到系统后安装 # unzip gpu-burn-master.zip # cd gpu-burn-mas…

关于MQ,你了解多少?(干货分享之二)

导语 本文梳理笔者 MQ 知识&#xff0c;从消息中间件的基础知识讲起&#xff0c;在有了基础知识后&#xff0c;对市面上各主流的消息中间件进行详细的解析&#xff0c;包括 RabbitMQ、RocketMQ、Kafka、Pulsar&#xff0c;最后再横向对比这几款主流的消息中间件。本篇是系列文…

Maven——如何快速生成bean的get、set方法,Lombok依赖引入和使用!!!

Lombok依赖引入和使用 1、项目pom.xml文件引入如下依赖&#xff1a;2、引入之后还要在idea中安装对应lombok插件:file–>plugins–>搜索框搜索lombok安装3、重启之后&#xff0c;便可以在实体类bean中使用提供注解快速生成对应的方法了 总结 本文介绍如何快速生成实体bea…

基于YOLOv5的姿态估计

一、基于YOLOV5的姿态估计与实现 相关论文&#xff1a; YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss 相关源码 edgeai-yolov5-yolo-pose 二、数据集 The dataset needs to be prepared in YOLO format so that the…

Sanic:Python中的高性能异步Web框架详解

概要 在众多Python Web框架中&#xff0c;Sanic以其高性能和易用性脱颖而出。它是一个异步Web框架&#xff0c;允许使用Python 3.6的新异步/等待语法编写代码&#xff0c;使得创建快速的HTTP响应成为可能。本文将深入探讨Sanic框架的核心特性、基本用法、路由管理、中间件处理…

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用 引言 在前面几期&#xff0c;介绍了敏感性分析法&#xff0c;本期来介绍lstm作为代理模型的sobol全局敏感性分析模型。 【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代…

软件测试面试题及答案(史上最全)

以下是软件测试相关的面试题及答案&#xff0c;欢迎大家参考! 1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&…

界面控件DevExpress WPF Dock组件,轻松创建类Visual Studio窗口界面!

本文主要为大家介绍DevExpress WPF控件中的Dock组件&#xff0c;它能帮助用户轻松创还能受Microsoft Visual Studio启发的Dock窗口界面。 P.S&#xff1a;DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress …

使用Python将OSS文件免费下载到本地:第三步 提供一个从ECS中下载和删除文件的接口

大家好&#xff0c;我是水滴~~ 本文将介绍了使用的知识点、以及利用 Flask 框架提供从 ECS 中下载和删除的文件接口代码、并对该代码进行详细解析、最后给出部署方案&#xff0c;希望能对你有所帮助&#xff01; 《Python入门核心技术》专栏总目录・点这里 文章目录 1. 本文知…

【Unity】运行时创建曲线(贝塞尔的运用)

[Unity]运行时创建线&#xff08;贝塞尔的运用&#xff09; 1. 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线。 2. 原理介绍 2.1 曲线的创建 unity建立网格曲线可以参考Unity程序化网格体的实现方法。主要分为顶点&#xff0c;三角面&#xff0c…

msal auzer 强制刷新获取令牌

背景&#xff1a;msal auzer token 过期时间微软默认事60至90分钟&#xff0c;普遍取中间值&#xff0c;现渗透测试部分&#xff08;Qtester&#xff09;要求30分token 过期。且不可使用msal的安全机制。 解决方案&#xff1a;‘ 后端&#xff0c;解析token 获取发证时间 ia…

【C++入门到精通】 原子性操作库(atomic) C++11 [ C++入门 ]

阅读导航 引言一、原子性操作库简介二、原子变量1. 原子类型2. 原子类型函数3. 使用示例 三、总结温馨提示 引言 当谈及并发编程时&#xff0c;确保数据的安全性和一致性是至关重要的。在C11中引入的原子性操作库&#xff08;atomic&#xff09;为我们提供了一种有效且可靠的方…

我的创作纪念日——成为创作者第1024天

机缘 一、前言 早上收到CSDN的推送信息&#xff0c;今天是我成为创作者的第1024天&#xff0c;回想起自己已经好久没有写博客了&#xff0c;突然间很有感触&#xff0c;想水一篇文章&#xff0c;跟小伙伴们分享一下我的经历。 二、自我介绍 我出生在广东潮汕地区的一个小城…

(1)(1.9) MSP (version 4.2)

文章目录 前言 1 协议概述 2 配置 3 参数说明 前言 ArduPilot 支持 MSP 协议&#xff0c;可通过任何串行端口进行遥测、OSD 和传感器。这样&#xff0c;ArduPilot 就能将遥测数据发送到 MSP 兼容设备&#xff08;如大疆护目镜&#xff09;&#xff0c;用于屏幕显示&#x…

【数据结构】八大排序之简单选择排序算法

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.简单选择排序简介及思路 二.简单选择排序的代码实现 三.简单选择排序的优化 四.简单选择排序的时间复杂度分析 结语 一.简单选择排序简介及思路 简单选择排序算法…

11 v-bind指令

概述 v-bind指令可以说是Vue3中最常用的指令之一&#xff0c;使用v-bind&#xff0c;我们几乎能够给任何实现动态的绑定比值。 这里&#xff0c;我们主要演示以下&#xff0c;通过v-bind动态绑定CSS样式。 基本用法 我们创建src/components/Demo11.vue&#xff0c;在这个组…