19.正则表达式

19.1什么是正则表达式

●正则表达式( Regular Expression) 是用于匹配字符串中字符组合的模式。在JavaScript中, 正则表达式也是对象
●通常用来查找、替换那些符合正则表达式的文本,许多语言都支持正则表达式

●正则表达式在JavaScript中的使用场景:
➢例如验证表单:用户名表单只能输入英文字母、数字或者下划线,昵称输入框中可以输入中文(匹配
➢比如用户名:/ ^[a-z0-9_ -]{3,16}$/
➢过滤掉页面内容中的一-些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等。

19.2语法

JavaScript中定义正则表达式的语法有两种,比较简单的一种方法:

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

const变量名= /表达式/

➢其中/ /是正则表达式字面量
●比如:
const reg = /前端/

2.判断是否有符合规则的字符串:
test() 方法 用来查看正则表达式与指定的字符串是否匹配
●语法:

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

●比如:
在这里插入图片描述
●如果正则表达式与指定的字符串匹配,返回true,否则false

3.检索(查找)符合规则的字符串:
exec() 方法 在一个指定字符串中执行一个搜索匹配
●语法:

regObj.exec(被检测字符串)

●比如:
在这里插入图片描述
●如果匹配成功,exec() 方法返回一个数组,否则返回null

19.3元字符

●普通字符:
大多数的字符仅能够描述它们本身,这些字符称作普通字符,例如所有的字母和数字。
也就是说普通字符只能够匹配字符串中与它们相同的字符。
●元字符(特殊字符)
是一些具有特殊含义的字符,可以极大提高灵活性和强大的匹配功能
➢比如,规定用户只能输入英文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('2哈')) //false
console.log(/^哈$/.test('哈')) //true
console.log(/^哈$/.test('哈哈')) //false

2.量词
量词用来设定某个模式出现的次数
在这里插入图片描述
注意:逗号左右两侧千万不要出现空格

3.字符类:
(1) [ ] 匹配字符集合
●后面的字符串只要包含abc中任意一个字符,都返回true
在这里插入图片描述
在这里插入图片描述
(2) [ ] 里面加上-连字符
●使用连字符表示一个范围

console.log(/^[a-z]$/.test('c')) // true 

●比如:
➢[a-z] 表示a到z 26个英文字母都可以
➢[a-zA-Z] 表示大小写都可以
➢[0-9] 表示0~9的数字都可以
●比如:
腾讯QQ号: ^[1-9][0-9]{4,}$ (腾讯QQ号从10000开始)

(3) [ ] 里面加上^取反符号
●比如:
[^a-z] 匹配除了小写字母以外的字符
➢注意要写到中括号里面

(4) . 匹配除换行符之外的任何单个字符

(5)预定义:指的是某些常见模式的简写方式。
在这里插入图片描述

19.4修饰符

●修饰符约束正则执行的某些细节行为,如是否区分大小写、是否支持多行匹配等
●语法:
/表达式/修饰符
➢i是单词ignore的缩写,正则匹配时字母不区分大小写
➢g是单词global的缩写,匹配所有满足正则表达式的结果

console.log(/a/i.test('a')) // true
console.log(/a/i.test('A')) // true

●替换replace替换
●语法:

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 20.0.4 搭建nvidia 显卡环境

一、安装docker 1、安装dokcer sudo apt install docker.io2、docker 添加到用户组 创建docker用户组 sudo groupadd docker添加当前用户加入docker用户组 sudo usermod -aG docker ${USER}重启docker服务 sudo systemctl restart docker切换或者退出当前账户再从新登入 …

【力扣每日一题】2023.8.15 字符中的查找与替换

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目很长,简而言之就是检查字符串中对应索引的位置是否有特定的字符串,如果有,那么替换,返…

选择最适合自己的笔记本

选择最适合自己的笔记本电脑 一、了解笔记本品牌一线品牌准一线品牌二线品牌三线品牌 二、笔记本入手渠道笔记本入手渠道 三、根据需求选择机型使用需求1.日常使用2.商务办公、财务3.轻度剪辑、ps4.代码5.创意设计6.游戏 四、笔记本电脑配置如何选1.cpu2.显卡(GPU&a…

miniExcel 生成excel

一、nuget dotnet add package MiniExcel --version 1.31.2 二、新建表及数据 ExampleProducts 三、这里我用了Dapper.Query方法 读取excel public virtual async Task<IActionResult> Anonymous(){try{//using (var connection _dbContext.GetDbConnection())//{//…

Java接口压力测试—如何应对并优化Java接口的压力测试

导言 在如今的互联网时代&#xff0c;Java接口压力测试是评估系统性能和可靠性的关键一环。一旦接口不能承受高并发量&#xff0c;用户体验将受到严重影响&#xff0c;甚至可能导致系统崩溃。因此&#xff0c;了解如何进行有效的Java接口压力测试以及如何优化接口性能至关重要…

【Linux初阶】system V消息队列 + system V信号量

文章目录 一、system V消息队列&#xff08;了解&#xff09;二、system V信号量&#xff08;了解&#xff09;1.信号量是什么2.临界资源和临界区3.互斥4.为什么要信号量 三、IPC资源的组织方式结语 一、system V消息队列&#xff08;了解&#xff09; 消息队列提供了一个从一…

dataframe resample时间重采样的坑

无论日期列不在index&#xff0c;index一定要按顺序&#xff0c;否则结果会和实际不一致。reset_index

LVGL学习笔记 30 - List(列表)

目录 1. 添加文本 2. 添加按钮 3. 事件 4. 修改样式 4.1 背景色 4.2 改变项的颜色 列表是一个垂直布局的矩形&#xff0c;可以向其中添加按钮和文本。 lv_obj_t* list1 lv_list_create(lv_scr_act());lv_obj_set_size(list1, 180, 220);lv_obj_center(list1); 部件包含&…

C++——vector介绍及其简要模拟实现

vector的介绍 此主题介绍转载自(https://cplusplus.com/reference/vector/vector/) 1.vector是一个表示可变大小数组的序列容器 2.vector同数组一样&#xff0c;采用连续存储空间来存储元素&#xff0c;这样可以用下标来对vector中的元素进行访问&#xff0c;但是vector的大…

image has dependent child images

问题&#xff1a;很多none的镜像无法被删除 解决过程&#xff1a; 1、通过 docker image prune -f 提示可删除为 0 2、直接进行删除报错&#xff1a; docker rmi 8f5116cbc201Error response from daemon: conflict: unable to delete 8f5116cbc201 (cannot be forced) - im…

Jmeter进阶使用:BeanShell实现接口前置和后置操作

一、背景 我们使用Jmeter做压力测试或者接口测试时&#xff0c;除了最简单的直接对接口发起请求&#xff0c;很多时候需要对接口进行一些前置操作&#xff1a;比如提前生成测试数据&#xff0c;以及一些后置操作&#xff1a;比如提取接口响应内容中的某个字段的值。举个最常用…

面试热题(全排列)

给定一个不含重复数字的整数数组 nums &#xff0c;返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 先在这里说明一下排列和组合的区别? 组合&#xff1a;是指从一…