第十六章 正则的介绍和使用

文章目录

  • 一、正则的概念和意义
  • 二、正则的创建
  • 三、正则的写
  • 四、正则的使用
  • 五、读正则
  • 六、练习

一、正则的概念和意义

  1. 正则:正确的规则,用来约束字符串的规则,正则的数据类型是对象,正则对象,正则表达式
  2. 正则的意义:
    • 节省代码量,减少代码冗余
    • 并没有节省性能
    • 如:从一串杂乱的字符串中取出所有的数字,放在数组中
var str = “asd256asd834as5da38sd512zcacas";
var linshi='';
var arr=[];
for(var i = 0; i < str.length; i++){if(str[i]>=0 && str[i]<=9){linshi += str[i];}else{if(linshi != ''){arr.push(linshi)linshi = '';}}
}
console.log(arr);

二、正则的创建

  1. 字面量:var reg1 = /a/;
  2. 构造函数:var reg2 = new RegExp("a");
  3. 区别:
    • 构造函数可以根据变量创建正则
    • 修饰符放在构造函数的第二个参数
    • 构造函数内,基本元字符书写成\\d,字面量为\d

三、正则的写

  • 写正则:正则的语法,正则中的每个符号的含义
  1. 修饰符
    • g:全局
    • i:忽略大小写
  2. 量词:
    • +:前一个部分,出现1次或以上
    • ?:前一个部分,出现0次或1次
    • *:前一个部分,出现0次或以上
    • {n}:前一个部分,出现n次
    • {n,}:前一个部分,出现n次或以上
    • {n,m}:前一个部分,出现n次到m次
  3. 特殊
    • 子串:(),包裹起来的部分是一个子串,表示一个整体
    • 或:|,或
    • 中元符:[],包裹起来的部分默认是或的关系
      • 一个中元符用于匹配一位字符
    • 非:[^],如:非数字:[^0-9]
    • 范围符:-,配合中元符使用,如:[a-z],表示从a到z
  4. 转义符(元字符):
    • \d:表示所有数字,同:[0-9]
    • \D:除了所有数字,同:[^0-9]
    • \w:表示所有数字字母下划线,同:[0-9a-zA-Z_]
    • \W:除了所有数字字母下划线,同:[^0-9a-zA-Z_]
    • \s:表示空白符,一般用于匹配空格
    • \S:表示非空白符
    • .:通配符,表示所有字符,慎用
    • \:转义符,将,在正则中有含义的符号,转成普通字符匹配
  5. test验证时
    • ^:标记从字符串开头的位置验证
    • $:标记验证到字符串结尾的位置

四、正则的使用

  1. 查找:从字符串中查找子串,是否存在,截取
    • str.search(reg)
    • str.match(reg)
    • reg.exec(str)
    • 区别:
  2. 替换:找到老字符,替换成新字符
    • str.replace(reg, newStr)
    • 贪婪特性:尽可能的多匹配
  3. 验证:判断字符串是否符合规则要求
    • reg.test(str)
    • 默认只验证字符串的局部,可以通过^和$标记开始和结尾的位置

五、读正则

  • 邮箱:/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
  • URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
  • HTML标签:/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/
  • 中文:/^[\u2E80-\u9FFF]+$/
  • 正则手册:

正则表达式手册

六、练习

  1. 编写正则,通过文件名验证是否是图片文件
    • xxx.jpg
    • xxx.png
    • xxx.gif
    • xxx.jpeg
    • xxx.webp
    • xxx.doc
    • xxx.exe
    • xxx.ppt
  2. 身份证号
    • 上网查规则
  3. 敏感词过滤
    • 多个敏感放在一个数组中
    • 使用正则完成
    • 利用构造函数创建正则
    • 基础:连续的相同的敏感词替换成一个*
    • 高级:连续的不同的敏感词替换成一个*
  4. 表单验证
    • 用户名验证:数字字母下划线中划线中文,5~10位
    • 密码验证:数字字母,6~10位
    • 重复密码验证:与正则无关
    • 手机号验证
    • 邮箱验证
    • 要求:每个输入框,边输入边验证输入框内容,在当前输入框后显示提示语
    • 要求:点击按钮,所有输入框全部正确,提示成功,否则,提示失败
      • 升级版:提示 失败的项
  5. 密码强度
    • 使用正则验证密码强度
    • 有三个块,默认为灰色
    • 弱:亮一个
    • 中:亮两个
    • 强:亮三个

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

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

相关文章

破解国企绩效管理中存在的三大难题

绩效管理是实现国企三项制度改革的重要保障&#xff0c;是实现员工个人绩效与企业整体效益不断提高的重要推手。国企现代化建设与高质量发展需要充分利用绩效管理的“指挥棒”作用&#xff0c;实现目标引领、问题导向、敏捷响应外部变化&#xff0c;从而激活组织&#xff0c;推…

CRM功能定制,哪些功能是需要格外注意的?

​到了2023年&#xff0c;在如今的商业环境中&#xff0c;千篇一律的方法很少能带来成功。这对于CRM管理系统尤其如此。虽然标准化的CRM解决方案为企业提供了一个简单的“入坑”门槛&#xff0c;但它们往往缺乏为企业带来真正竞争优势所需的灵活性&敏捷性。企业想要拥有适合…

【Python程序开发系列】一文总结API的基本概念、功能分类、认证方式、使用方法和开发流程

这是Python程序开发系列原创文章&#xff0c;我的第195篇原创文章。 一、什么是API&#xff1f; API是软件开发中非常重要的概念&#xff0c;它简化了不同组件之间的交互和集成&#xff0c;提供了对其他软件或服务功能的访问和调用方式。 API是应用程序编程接口&#xff08;Ap…

计算机配件杂谈-鼠标

目录 基础知识鼠标的发展鼠标的左右手鼠标的显示样式鼠标的移动和可见性移动可见性 现在的我们的生活工作都基本上离不开电脑了&#xff0c;不管是你平时玩玩游戏&#xff0c;上班工作等等&#xff1b; 今天将关于鼠标的一些小的技巧分享出来&#xff0c;共勉&#xff01; 基础…

Openharmony 对应Android基本系统信息

最新需要做Openharmony的一些适配&#xff0c;但是看了hdc&#xff0c;相比adb阉割了不少东西&#xff0c;很多都没展示出来&#xff0c;所以就想方设法跟adb的一些方法对照一下&#xff0c;分享一下希望帮到更多的人。 什么是getprop 在Android系统中&#xff0c;getprop是一个…

Git删除远程仓库某次提交记录后的所有提交

1、鼠标右键->git bash here&#xff0c;然后cd切换到代码目录&#xff1b; 2、git log查看提交记录&#xff0c;获取commit id 3、git reset commit id&#xff08;commit id指要保留的最新的提交记录id&#xff09; 4、git push --force&#xff0c;强制push 如果出现…

上海亚商投顾:三大指数小幅反弹,旅游、机器人板块集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日震荡反弹&#xff0c;创业板指一度涨超1.7%&#xff0c;午后集体回落翻绿&#xff0c;临近尾盘又…

软考高级系统架构设计师考试经验分享

文章目录 1. 软考介绍&#xff08;1&#xff09;什么是软考&#xff08;2&#xff09;软考的作用&#xff08;3&#xff09;软考各科目的难度&#xff08;4&#xff09;考试时间&#xff08;5&#xff09;考试形式 2.系统架构设计师备考经验&#xff08;1&#xff09;辅导资料&…

关于MySQL源码的学习 这里是一些建议

学习MySQL源码需要一定的编程基础&#xff0c;特别是C语言和数据结构。以下是一些建议&#xff0c;帮助你更好地入手学习MySQL源码&#xff1a; 基础知识 熟悉C语言编程基本概念、数据结构和算法。了解Linux操作系统基本概念&#xff0c;如进程、线程、内存管理、文件系统等。…

知识点整理[(GraphGeo) DATA AND PROBLEM DEFINITION]

3 DATA AND PROBLEM DEFINITION 3.1 Data Collection 问题一:IP定位数据集构成 回答: 包含数以百万计的IP地址,这些IP地址包括: (1)它们具有自己的知识(如自主系统(AS)和WHOIS数据); (2)网络测量

pve多台物理机虚拟化 pve虚拟机优势

Proxmox VE是一个运行虚拟机和容器的平台。基于Debian Linux&#xff0c;完全开源。为了获得最大的灵活性&#xff0c;实现了两种虚拟化技术——基于内核的虚拟机(KVM)和基于容器的虚拟化(LXC)。一个主要的设计目标是使管理尽可能容易。运行在单个节点上使用Proxmox VE&#xf…

[力扣 Hot100]Day1 两数之和

考完研了秽土转生&#xff0c;开始刷一下LeetCode准备一下复试&#xff0c;我尽量每个工作日一更 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设…

【低照度图像增强系列(3)】EnlightenGAN算法详解与代码实现

前言 ☀️ 在低照度场景下进行目标检测任务&#xff0c;常存在图像RGB特征信息少、提取特征困难、目标识别和定位精度低等问题&#xff0c;给检测带来一定的难度。 &#x1f33b;使用图像增强模块对原始图像进行画质提升&#xff0c;恢复各类图像信息&#xff0c;再使用目标检…

MySQL explan参数详细解读

MySQL的EXPLAIN语句用于分析SQL查询的执行计划&#xff0c;它返回的结果有助于理解MySQL如何处理和优化查询。以下是EXPLAIN结果中各列参数的详细解读&#xff1a; id&#xff1a; 标识SQL查询中的每个部分&#xff08;例如子查询、联合查询等&#xff09;的顺序。值越大表示该…

搜维尔科技:第九届元宇宙数字人设计大赛作品规范解读!

作品提交 参赛小组需要将作品上传至百度网盘&#xff0c;并将分享链接发送至frankaxis3d.cn邮箱。邮寄格式如下&#xff1a; 邮件标题&#xff1a;作品名称元宇宙数字人设计大赛作品 邮件内容标明&#xff1a;学校名称、院系名称、作品名称、作者名称、联系电话及指导老师名…

机器学习系列--R语言随机森林进行生存分析(2)

随机森林&#xff08;Breiman 2001a&#xff09;&#xff08;RF&#xff09;是一种非参数统计方法&#xff0c;需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术&#xff0c;通过拟合一组树来稳定预测精度模型估计。随机生存森林&#xff08;RSF&#xff0…

Linux du和df命令

目录 一. df二. du 一. df ⏹用于显示系统级别&#xff0c;磁盘分区上的可用和已用空间的信息 -h&#xff1a;以人类可读的格式显示文件系统大小 ⏹每秒钟监视当前磁盘的使用情况 watch 用于周期性的执行特定的命令-n 1 表示每一秒刷新一次命令执行的结果df -h ./ 表示周期性…

OCR识别PDF扫描件

# OCR识别PDF 哪种OCR软件或程序接口可以将"扫描件PDF", 使用OCR识别成可复制文字, 并且不改变排版; 让一个800M的文件变成可复制的几十兆文件 - 期待回复

Salesforce Einstein详解

首先给大家强调的是Einstein AI在国内的阿里云版是不具备的&#xff0c;原因不言自喻。 一&#xff0e;saleforce Einstein简介 爱因斯坦是SalesForce花重金&#xff08;收购RelateIQ、机器学习公司PredictionIO与深度学习企业MetaMind&#xff0c;MetaMind创始人Richard Soc…

geemap学习笔记044:形态学操作--腐蚀、膨胀、开运算、闭运算

前言 形态学操作是图像处理中的一种基本操作&#xff0c;其主要目的是通过改变图像的形状或结构来提取图像中的特定信息、去除噪声、分割图像中的不同对象等。形态学操作通常应用于二值图像&#xff0c;其中图像中的像素只有两个取值&#xff0c;通常是0和1。 腐蚀(Erosion) …