JavaScript 学习笔记(WEB APIs Day6)

news2024/10/3 2:19:44

「写在前面」

本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容:
1. JavaScript 学习笔记(Day1)
2. JavaScript 学习笔记(Day2)
3. JavaScript 学习笔记(Day3)
4. JavaScript 学习笔记(Day4)
5. JavaScript 学习笔记(Day5)
6. JavaScript 学习笔记(WEB APIs Day1)
7. JavaScript 学习笔记(WEB APIs Day2)
8. JavaScript 学习笔记(WEB APIs Day3)
9. JavaScript 学习笔记(WEB APIs Day4)
10. JavaScript 学习笔记(WEB APIs Day5)


目录

  • 1 正则表达式
  • 2 综合案例
  • 3 阶段案例

1 正则表达式

1.1 介绍

P138:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=138

正则表达式(Regular Expression):是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象

通常用来查找、替换那些符合正则表达式的文本,许多语言都支持正则表达式。

1.2 语法

1. 定义正则表达式语法:

const reg = /表达式/

2.判断是否有符合规则的字符串:

reg.test(被检测的字符串)

3.检索(查找)符合规则的字符串:

reg.exec(被检测的字符串)

例:

const str = '我们在学习前端'
// 正则表达式使用:
// 1.定义规则
const reg = /前端/
// 2.是否匹配
console.log(reg.test(str)) // true
// 3. exec() 搜索匹配
console.log(reg.exec(str)) // 返回数组

1.3 元字符

P139:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=139

  • 普通字符:大多数的字符仅能够描述它们本身,这些字符称作普通字符,例如所有的字母和数字。也就是说普通字符只能够匹配字符串中与它们相同的字符。

  • 元字符(特殊字符):是一些具有特殊含义的字符,可以极大提高了灵活性和强大的匹配功能。

    • 比如,规定用户只能输入英文26个英文字母,普通字符的话 abcdefghijklm…..
    • 但是换成元字符写法: [a-z]
  • 参考文档:

    • MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
    • 正则测试工具: http://tool.oschina.net/regex

1. 边界符

正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符

边界符说明
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)

如果 ^ 和 $ 在一起,表示必须是精确匹配。

例:

console.log(/哈/.test('哈')) // true
console.log(/二哈/.test('二哈')) // true
console.log(/二哈/.test('很二哈哈')) // true
// ^ 开头
console.log(/^二哈/.test('很二哈哈')) // false
console.log(/^二哈/.test('二哈很傻')) // true
// $ 结尾
console.log(/^二哈$/.test('二哈很傻')) // false
console.log(/^二哈$/.test('二哈二哈')) // false
console.log(/^二哈$/.test('二哈')) // true

2. 量词

P140:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=140

量词用来 设定某个模式出现的次数

量词说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

注意:逗号左右两侧千万不要出现空格

例:

// * 表示重复0次或者更多次
console.log(/^哈*$/.test('')) // true
console.log(/^哈*$/.test('哈')) // true
console.log(/^哈*$/.test('哈哈哈')) // true
// + 表示重复1次或者更多次
console.log(/^哈+$/.test('')) // false
console.log(/^哈+$/.test('哈')) // true
console.log(/^哈+$/.test('哈哈哈')) // true
// ? 表示重复0次或者1次
console.log(/^哈?$/.test('')) // true
console.log(/^哈?$/.test('哈')) // true
console.log(/^哈?$/.test('哈哈哈')) // fasle
// {n} 表示重复n次
console.log(/^哈{2}$/.test('')) // false
console.log(/^哈{2}$/.test('哈')) // false
console.log(/^哈{2}$/.test('哈哈')) // true
console.log(/^哈{2}$/.test('哈哈哈')) // false
// {n,} 是 >=n 的意思
console.log(/^哈{2,}$/.test('')) // false
console.log(/^哈{2,}$/.test('哈')) // false
console.log(/^哈{2,}$/.test('哈哈')) // true
console.log(/^哈{2,}$/.test('哈哈哈')) // true
// {n,m} 是次数 >= n <= m 的意思﹑注意,逗号左右千万不要有空格
console.log(/^哈{2,4}$/.test('')) // faLse
console.log(/^哈{2,4}$/.test('哈'))// false
console.log(/^哈{2,4}$/.test('哈哈'))// true
console.log(/^哈{2,4}$/.test('哈哈哈')) // true
console.log(/^哈{2,4}$/.test('哈哈哈哈')) // true
console.log(/^哈{2,4}$/.test('哈哈哈哈哈')) // false

3. 字符类:

P141:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=141

  • [ ] 匹配字符集合
// 只要中括号里面的任意字符出现都返回为true
console.log(/[abc]/.test('andy')) // true
console.log(/[abc]/.test('baby')) // true
console.log(/[abc]/.test('cry')) // true
console.log(/[abc]/.test('die')) //false
  • [ ] 里面加上 - 连字符

使用连字符 - 表示一个范围

比如:

  • [a-z] 表示 a 到 z 26个英文字母都可以
  • [a-zA-Z] 表示大小写都可以
  • [0-9] 表示 0~9 的数字都可以
// 腾讯QQ号
^[1-9][0-9]{4,}$ // 腾讯QQ号从10000开始
  • [ ] 里面加上 ^ 取反符号

比如:

  • [^a-z] 匹配除了小写字母以外的字符

  • 注意要写到中括号里面

  • . 匹配除换行符之外的任何单个字符

P142:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=142

预定义:指的是某些常见模式的简写方式

预定类说明
\d匹配0-9之间的任一数字,相当于[0-9]
\D匹配所有0-9以外的字符,相当于[^0-9]
\w匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
\W除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
\s匹配空格(包括换行符、制表符、空格符等),相等于[\t\r\n\v\f]
\S匹配非空格的字符,相当于[^\t\r\n\v\f]
// 日期格式
^\d{4}-\d{1,2}-\d{1,2}

1.4 修饰符

修饰符约束正则执行的某些细节行为,如是否区分大小写、是否支持多行匹配等

语法:/表达式/修饰符

  • i 是单词 ignore 的缩写,正则匹配时字母不区分大小写
  • g 是单词 global 的缩写,匹配所有满足正则表达式的结果

replace 替换

语法:

字符串.replace(/正则表达式/, '替换的文本')

例:

const str = 'java是一门编程语言,学完JAVA工资很高'
const re = str.replace(/java/i,'python’)
console.log(re) // '
python是一门编程语言,学完JAVA工资很高'
const re = str.replace(/java/ig,'
python’)
console.log(re) // 'python是一门编程语言,学完python工资很高'

2 综合案例

P143:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=143

P144:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=144

alt

3 阶段案例

P145:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=145

alt

「结束」
alt

本文由 mdnice 多平台发布

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

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

相关文章

网页首页案例(使用框架:继上一篇博客结尾)

文章目录 新认识的快捷键1.先写好组件并导入App.vue2.往组件中一个一个填内容3.整体静态完成后&#xff0c;发现某些小部分相同&#xff0c;其实可以分装成小组件4.最后通过js动态渲染 新认识的快捷键 1.Ctrl滚轮按住往下拖可以部分选中 .用同样的方法选中下面的111&#xff0…

temu跨境电商怎么样?做temu蓝海项目有哪些优势?

在全球电商市场激烈的竞争中&#xff0c;Temu跨境电商平台以其独特的优势和策略&#xff0c;逐渐崭露头角。对于许多想要拓展海外市场的商家来说&#xff0c;Temu的蓝海项目提供了一个充满机遇的新平台。本文将深入探讨Temu跨境电商的优势以及在蓝海市场中的发展前景。 全球化市…

32人联机自建服务器攻略【幻兽帕鲁多人游玩】

创建幻兽帕鲁服务器1分钟部署教程&#xff0c;阿里云和腾讯云均推出幻兽帕鲁服务器服务器和部署教程&#xff0c;4核16G和4核32G配置可选&#xff0c;阿腾云atengyun.com分享1分钟自建幻兽帕鲁Palworld服务器教程&#xff1a; 幻兽帕鲁服务器创建教程 幻兽帕鲁服务器官方推荐…

JavaScript DOM对象的尺寸和位置详解

在DOM对象操作中&#xff0c;其尺寸和位置也是DOM的核心内容&#xff0c;因为js的“交互式应用”几乎少不了对DOM对象的尺寸和位置进行操作&#xff0c;特别是js动画效果。 一、关于DOM对象的尺寸和位置介绍 二、DOM文档对象的尺寸 1、obj.scrollWidth 和 obj.scrollHeight …

MATLAB环境下使用训练好的卷积神经网络进行大地电磁数据噪声抑制

大地电磁MT是一种比较成熟的地球物理勘探方法&#xff0c;通过计算地面测量的正交电场分量和磁场分量的扰动值研究地下介质的电性结构。MT在油气和工程勘探领域得到了广泛应用。但是由于该方法以天然电磁场为场源&#xff0c;存在地面信号弱和源激发随机的缺点&#xff0c;极易…

Doris 与 Clickhouse 对比(一)

1. 常用引擎 ☕️ Doris 表数据模型 duplicate key &#x1f3ac; 场景&#xff1a;适用于数据无需提前聚合的分析业务。 ⚠️ 注意点&#xff1a;只指定排序列&#xff0c;相同的行并不会合并。 unique key &#x1f3ac; 场景&#xff1a;适用于有更新需求的业务。 ⚠…

Dlearning

Deep Learning Basic 神经网络&#xff1a; #mermaid-svg-rR22a8Udy5SxGOoP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rR22a8Udy5SxGOoP .error-icon{fill:#552222;}#mermaid-svg-rR22a8Udy5SxGOoP .error-t…

JPDA框架和JDWP协议

前言 在逆向开发中,一般都需要对目标App进行代码注入。主流的代码注入工具是Frida,这个工具能稳定高效实现java代码hook和native代码hook,不过缺点是需要使用Root设备,而且用js开发,入门门槛较高。最近发现一种非Root环境下对Debug App进行代码注入的方案,原理是利用Jav…

使用js判断list中是否含有某个字符串,存在则删除,

显示上图中使用了两种方式&#xff0c; 左边的是filter将不等于userCode的元素筛选出来组成一个新的list&#xff0c; userCodeList.filter(item> item!userCode)&#xff1b;但是上面这个方法在IE浏览器中不支持&#xff0c; 所以改成了右边的方法&#xff0c;使用splice…

【代码随想录-数组】有序数组的平方

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

MAIA ACTIVE×实在RPA丨低成本、高效率管理达人推广计划,业务提效超6倍

MAIA ACTIVE&#xff08;以下简称“MAIA”&#xff09;是一个专为亚洲女性设计的运动服品牌&#xff0c;于2016年成立于上海。作为女装细分市场的头部企业&#xff0c;MAIA凭借与抖音、小红书等平台达人合作&#xff0c;迅速积累了知名度&#xff0c;并长期保持品牌曝光度和销售…

STM32标准库——(4)OLED显示屏

1.STM32调试方式 串口调试&#xff1a;通过串口通信&#xff0c;将调试信息发送到电脑端&#xff0c;电脑使用串口助手显示调试信息显示屏调试&#xff1a;直接将显示屏连接到单片机&#xff0c;将调试信息打印在显示屏上Keil调试模式&#xff1a;借助Keil软件的调试模式&…

假期刷题打卡--Day15

1、MT1152韩信又生气了 韩信点兵(大于10人)&#xff0c;三个三个一排少1个人&#xff0c;五个五个一排又少1个人&#xff0c;七个七个一排还少1个人。韩信生气了&#xff0c;从别的队伍里调来一个人!这样不管是三个一排五个一排还是七个一排都完美了。问原本最少应该有多少人。…

STM32标准库——(3)GPIO输入

1.按键简介 按键&#xff1a;常见的输入设备&#xff0c;按下导通&#xff0c;松手断开 按键抖动&#xff1a;由于按键内部使用的是机械式弹簧片来进行通断的&#xff0c;所以在按下和松手的瞬间会伴随有一连串的抖动 1.1 硬件电路图 上面两个是外加上拉电阻&#xff08;常用…

一款颜值与实力并存的翻页时钟(免费)

FliTik是一款颜值与实力并存的翻页时钟&#xff0c;安卓端是完全免费的&#xff0c;无任何广告&#xff0c;极简风 &#xff0c;软件默认是12小时制&#xff0c;可以在设置中启用24小时制&#xff0c;并且还支持设置显示秒钟、日期、文案&#xff0c;滴答声和语音报时。 支持横…

[C++开发 02_1/5_ 程序的内存模型(84)]

知识点1&#xff1a;内存分区模型 1.1 程序运行前 命名技巧&#xff1a;c--const(初始化之后不能被修改) g--global&#xff08;全局的&#xff09; l -- local&#xff08;局部的&#xff09; 代码区和全局区都只是在程序运行前的区域。 在程序运行之后才会有栈…

mysql高可用设计,主库挂了怎么办

实际上高可用就是系统能提供的一种无故障服务能力&#xff0c;就是避免宕机出现不能服务的场景。 首先来说对于无状态服务的高可用设计是比较简单的&#xff0c;发现有不能用的就直接停了换别的服务器就行&#xff0c;比如Nginx。这里说一下无状态服务就是不需要记录你的状态、…

玩转WEB接口之一 【HTTP调试测试神器 httpbin使用】

文章目录 一、项目、作者何许人也二、观摩庐山真面目三、怎么玩四、后端怎么调用1. RestTemplate测试代码2. 运行结果 一、项目、作者何许人也 httpbin是大神kennethreitz为搭建测试用的http服务而写的项目&#xff0c;httpbin 这个服务应用能测试HTTP请求及响应的各种信息&am…

什么是框架 确定伦敦金的框架为何重要?

在伦敦金投资中&#xff0c;我们要进行分析或者交易&#xff0c;都要将伦敦金走势置于一个框架内。什么才是框架呢&#xff1f;笔者认为&#xff0c;在当前伦敦金走势的上方和下方画出支撑阻力位&#xff0c;这就是框架。但我们要注意框架得能够立得起来&#xff0c;那才算是好…

Python之线程与进程相关介绍

Python 线程与进程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流&#xff0c;一个进程中可以并发多个线程&#xff0c;每条线程并行执行不同的任务。 使用 threading 模块 …