浅学正则表达式

概念:

正则表达式在程序中代表一种规则,它是一种符号语言,需要理解每一个符号表示的含义。

应用场景:

1.表单验证

2.网页信息敏感词替换

3.字符串中提取我们想要的部分

……

使用:

网址:“https://www.runoob.com/regexp/regexp-tutorial.html"

步骤:

1.定义正则:let 正则变量 = /正则要求/,//不可加引号

2.通过正则验证内容

a.正则变量.test('要被验证的内容');返回值为布尔值,true表示符合规则,false表示不符合规则

b.正则变量.exec('要被验证的内容');返回为null表示不符合规则,返回数组表示符合规则

元字符:

在正则表达式中具有特殊含义的符号(字符)

元字符分类:

边界符:

^:表示开始,以什么开始

$:表示结束,以什么结束

他们同时使用时表示精确匹配,表示当前内容,不能有其它值

量词符:

+:表示出现的次数一次或者更多次(至少出现一次)

?:表示出现的次数0次或者1次(最多1次)

*:表示出现的次数0次或多次(若干次)

{n}:表示出现的次数等于n次

{n,}:表示至少出现n次

{n,m}:表示出现n到m次

let reg = /^ab{2}$///精确匹配,abb开头结束
let str = 'abb'
let str1 = 'aabb'
let str2 = 'abab'
console.log(reg.test(str))//true
console.log(reg.test(str1))//false
console.log(reg.test(str2))//false

字符类:

字符集:

[]:表示的含义内容中只要包含其中一个值即可

[值-值]:表示的含义内容中包含从某个值到某个值范围内的值即可

[^值]:[]里面的^表示取反

.:/./匹配除换行符之外的任何单个字符,在字符串中,如果要表示换行通过换行符实现、\r\n

let reg = /[abc]///匹配abc中的任何单个字符
let reg1 = /[a-z]///匹配26个小写英文子母其中的任何单个字符,-表示一个范围,从某个值到某个值的范围内
let reg2 = /[a-zA-Z]///匹配大小写字母都可以
let reg3 = /[^a-z]///匹配除了26个小写英文子母之外的其它任何单个字符,^取反符号([]中括号内)
let reg4 = /^[1-9][0-9]{4,}$///匹配从10000开始的所有数字
let reg5 = /^[a-zA-Z0-9_]{6,16}$///匹配6-16位英文数字下划线的内容

预定义类:

指某些常见模式的简写方式,大写和小写是完全相反

字符串替换

修饰符:

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

语法:/表达式/修饰符

i是单词ignore的缩写,正则匹配时字母不区分大小写

g是单词global的缩写,匹配所有满足正则表达式的结果

let str = 'abbcabb'
let reg6 = /a/g
let reg7 = /a/i

replace替换

语法:字符串.replace(/正则表达式/,‘替换的文本’)

let str = 'abbcabb'
let reg = /sb|激情/g  //|表示或者的意思,就是多类替换
console.log(str.replace(reg, '**'));//abb**cab**b

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

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

相关文章

软件测试/测试开发丨Python闭包函数和计时器学习笔记

闭包函数 闭包的内部函数中,对外部作用域的变量进行引用闭包无法修改外部函数的局部变量闭包可以保存当前的运行环境 # 普通方法实现 def output_student(name, gender, grade1):print(F"新学期开学啦,学生{name}是{gender},他是{grad…

代码随想录二刷 | 二叉树 | 合并二叉树

代码随想录二刷 | 二叉树 | 合并二叉树 题目描述解题思路递归迭代 代码实现递归迭代 题目描述 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并…

MSVC++ 编译 module std

环境:windows 10 19045.xxxx 只安装了MSVC C 工具链和一个版本的SDK,SDK版本建议选一个和本机系统匹配的。 cd %USERPROFILE%\source\repos\STLModules mkdir x86 mkdir x64 打开“x86 Native Tools Command Prompt for VS 2022”控制台,…

MySQL数据库多版本并发控制(MVCC)

在数据库中,并发控制是确保多个事务能够同时执行,而不会导致数据不一致或冲突的关键机制。多版本并发控制(MVCC)是一种流行的并发控制方法,它可以允许多个事务同时读取同一数据项的不同版本,而不会相互阻塞。本文将讨论MVCC的原理…

软件测试/测试开发丨函数式编程学习笔记

一.高阶函数 高阶函数:既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。 1. map/reduce map() : 函数接收两个参数,一个是函数,一个是…

231227-9步在RHEL8.8配置本地yum源仓库

Seciton 1:参考视频 RHEL8配置本地yum源仓库-安徽迪浮_哔哩哔哩_bilibili Seciton 2:具体操作 🎯 第1步:查看光驱文件/dev/sr0是否已经挂载?此处已挂在 [lgklocalhost ~]$ df -h 🎯 第1步:查看…

案例232:基于微信小程序的学生实习与就业管理系统设计与实现

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder …

常用的 linux 命令

常用的 linux 命令 1.从其他机器拷贝文件夹2.查看哪个程序在用特定端口3.实时监控日志文件内容4.查看指定用户拥有的进程5.查看磁盘空间使用情况6.文件搜索which(whereis) 显示系统命令所在目录find 查找任何文件或目录1) 根据文件名称查找2)…

【Linux】Linux服务器ssh密钥登录

ssh密码登录 ssh root地址 #需要输入密码ssh密钥登录 Linux之间密钥登录 生成公私钥 #生成公钥私钥 ssh-keygen #默认目录,默认密码空ssh-copy-id #拷贝ID到目标服务器 ssh-copy-id -i id_rsa.pub root192.168.8.22 ssh-copy-id -i id_rsa.pub root192.168.8.33…

Docker七 | 搭建Swarm集群

目录 创建Swarm集群 创建管理节点 增加工作节点 查看集群 部署服务 新建服务 查看服务 服务伸缩 增加服务 减少服务 删除服务 创建Swarm集群 创建管理节点 在192.168.117.131下执行docker swarm init命令的节点自动成为管理节点 [rootlocalhost ~]# docker swar…

Zookeeper-Zookeeper特性与节点数据类型详解

1.Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来解决分布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂目容易出错的分布式一致性服务封装起来,构成一高效可靠的原…

C语言——数据在内存中的存储【整型数据在内存中的储存,大小端字节序储存,浮点型数据在内存中的储存】

📝前言: 在前面的三篇文章中我们已经完成了对字符函数和字符串函数的学习,现在就让我们探索新领域,更加深入的理解**数据在内存中的存储方式**: 1,整数在内存中的存储 2,⼤⼩端字节序存储 3&…

SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型

作者:kele 一、背景 SuperMap Hi-Fi 3D SDK(2023 11i) for Unity推出新功能:支持矢量面同时贴地形图层和模型图层,并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控…

基于SSM实现的电动汽车充电网点管理系统

一、系统架构 前端:jsp | jquery | bootstrap | css 后端:spring | springmvc | jdbc 环境:jdk1.8 | mysql 二、代码及数据库 三、功能介绍 01. web端-首页 02. web端-登录 03. web端-注册 04. web端-我要充电 05. web端-个人中心-消…

Springcloud Alibaba使用Canal将Mysql数据实时同步到Redis保证缓存的一致性

目录 1. 背景 2. Windows系统安装canal 3.Mysql准备工作 4. 公共依赖包 5. Redis缓存设计 6. mall-canal-service 1. 背景 canal [kənl] ,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。其诞…

nginx源码分析-1

使用gdb查看函数上下文: gdb attach nginx的work线程 监听端口状态时: 断点打在ngx_http_process_request 并通过浏览器触发请求时:

把这些软件测试经典面试题!全背下来,拿offer就像喝水一样!

1、什么是兼容性测试?兼容性测试侧重哪些方面? 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。兼容的类型,如果细分的话,有平台的兼容,网络兼容&am…

哈希桶的模拟实现【C++】

文章目录 哈希冲突解决闭散列 (开放定址法)开散列 (链地址法、哈希桶)开散列实现(哈希桶)哈希表的结构InsertFindErase 哈希冲突解决 闭散列 (开放定址法) 发生哈希冲突时&#xf…

【算法刷题】Day26

文章目录 1. 买卖股票的最佳时机含冷冻期题干:算法原理:1. 状态表示:2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码: 2. 替换所有的问号题干:算法原理:代码: 1. 买卖股票的最佳时机含冷冻…

组件间的值传递:改进若依框架中的BarChart.vue组件

改进前的BarChart 如下是若依(Ruoyi)框架中的BarChart.vue文件&#xff0c;该BarChart.vue无法实现组件间的值传递。到这里您不妨可以试试该如何去传值。如果您不想思考&#xff0c;请看改进后的BarChart。直接拿走使用&#xff01; <template><div :class"cla…