JS高级05(正则表达式)

JavaScript(基础、高级)笔记汇总表【尚硅谷JavaScript全套教程完整版】 尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) 阅读详情


小概

本章的学习内容围绕正则表达式进行学习,主要分为正则表达式的常用符号的认识和应用场景。


1. 正则表达式介绍

正则表达式:Regular Expression 简写:RegExp RegEx
:就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

2. 创建方式

        //创建正则对象. 
        //1. 使用构造函数的函数创建
        let reg1 = new RegExp('<.{4}>');
        let str = "哈哈呵呵嘻嘻</html>嘿嘿";
        let res = reg1.test(str);
        console.log(res);
        //2.使用字面量的方式去创建
        let reg2 = /男|女/;
        let str = "滕宇是nv的吗?";
        let res = reg2.test(str);
        console.log(res);

3. 预定义类

1.元字符/预定义类-就是事先给他赋予了一些含义的字符.

      .	[^\n\r]	  除了换行和回车之外的任意字符
      \d	[0-9]		数字字符    [0123456789]  digit
      \D	[^0-9]	非数字字符  
      \s	[\f\r\n\t\v]	不可见字符
      \S	[^\f\r\n\t\v]	可见字符
      \w	[a-zA-Z0-9_]		单词字符(所有的字母数字和_)
      \W	[^a-zA-Z0-9_]	  非单词字符

    参数
    i	忽略大小写
    g	全局匹配 global
    gi	全局匹配+忽略大小写
    console.log(/a/.test("a")); //true
    console.log(/a/.test("A")); //false
    console.log(/a/i.test("A")); //true
    console.log(/a/i.test("bbb"));//false

4. 或和三个括号

1.| 或

    // 检测的字符串里面有没有男这个字或者女这个字,如果有就返回true, 否则就返回false. 
    console.log(/男|女/.test('文文是男女的吗?'));//true
    console.log(/男|女/.test('文文是男的吗?'));//true
    console.log(/男|女/.test('文文是女的吗?'));//true
    console.log(/男|女/.test('文文是nv的吗?')); //false

2.()小括号:表示优先级,优先判断或执行小括号中的代码

	console.log(/^(abc){3}$/.test('abcabcabc'));   //true

3.[ ] 中括号:字符集合,匹配方括号中的任意字符

console.log(/[abc]/.test("a"));  //true  a || b || c

4.{ } 大括号:量词符,里面表示重复次数
特殊的三个量词符:

  1. (*)重复零次或更多次 x >=0
  2. (+)重复一次或更多次 x>=1
  3. (?)重复零次或一次 x=(0||1)
	console.log(/^colo*r$/.test("colr")); //true
	console.log(/^colo*r$/.test("color")); //true
	console.log(/^colo*r$/.test("coloor")); //true

	console.log(/^colo+r$/.test("colr")); //false
	console.log(/^colo+r$/.test("color")); //true
	console.log(/^colo+r$/.test("coloor")); //true

	console.log(/^colo?r$/.test("colr")); //true
	console.log(/^colo?r$/.test("color")); //true
	console.log(/^colo?r$/.test("coloor")); //false

    //{n}	n次	x=n
    //{n,}	重复n次或更多  x>=n
    //{n,m} 重复出现的次数比n多但比m少 n<=x<=m
    console.log(/^colo{2,5}r$/.test("coloooor"));//true

5. 范围类和组合类

范围类:0-9:表示数字0到9
a-z:表示小写字母a到z
A-Z:表示大写字母A到Z

console.log(/[a-m1-5]/.test("b"))//true
console.log(/[a-m1-5\n]/.test("ttttyyyyzzzc66666"))//true
    //2个简单类组成的正则对象, 那验证的字符串至少有2个字符串,检测结果才是true.
    //至少要有2个字符,第一个字符满足第一个简单类规则,第二个字符满足第二个简单类规则. 
    console.log(/[^0-5][^a-g]/.test("6")); //false 从数量上来讲就已经不符合这个正则规则了
    console.log(/[^0-5][^a-g]/.test("6z")); //true

6. 边界

^以什么开头 /^ /
$以什么结尾 / $/

	console.log(/^6+a/.test("6a77776abbbb")); //true
  	console.log(/^6.a/.test("6\nabat ")); //false .表示除了换行和回车之外的任何字符

注意:/^ /边界符 ,如果^在[ ]中([^ ])则表示反向类,比如[^\d]表示的是除了数字外的任意字符。
边界符 ^ 和反向类[ ^ ]中的 ^ 不能混淆。

7. 验证汉字

escape(‘’):汉字转义成Unicode编码
unescape(‘’):把Unicode编码转回汉字
所有的汉字都在 [\u4e00-\u9fa5] 这个范围中

    //需求: 写一个正则去验证/去判断一个字符串中是否出现了中文汉字.      
    //"ewrfewrferew国rewr"
    console.log(/[\u4e00-\u9fa5]/.test('ewrfewrferew国rewr'));//true

字符串方法配合正则表达式使用

字符串方法-replace替换

字符串方法replace(‘原字符’,替换字符)可以配合正则表达式使用,达到同时替换多处的效果
.replace(正则表达式,替换字符)

        //. 把下面字符串中的工资全部替换成1000
        let str = "老张200老李300老王400";
        let strNew = str.replace(/\d+/g,'1000');
        console.log(strNew);

\d:只能一个数字,\d+则表示一个及以上数字,才能得到200,300,400、g则表示全局匹配,后面的300,400也能匹配.

字符串方法-match提取

字符串方法-match提取
找到一个或多个 正则表达式的匹配.
如果找到了就返回一个数组,数组的元素就是找到的值.
如果找不到就返回null.

        //.提取邮箱. 
        let str = "123123@xx.com,fangfang@valuedopinions.cn 楼主好人一生平安286669312@qq.com 楼主求个种子2、emailenglish@emailenglish.englishtown.com 286669312@qq.com...";

        //let arr = str.match(/\w+@\w+(\.\w+)+/g);
        let arr = str.match(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/g);
        console.log(arr);
  • 分组提取
    //提取email中的每一部分
    var str = "123123@xx.com.cn";
    var reg = /(\w+)@(\w+)\.(\w+)(\.\w+)?/g;
    var array = str.match(reg);
    console.log(array);

    // //获取分组的数据  ()是分组
    console.log(RegExp.$1);  //123123
    console.log(RegExp.$2);		//xx
    console.log(RegExp.$3);		//com
    console.log(RegExp.$4);		//.cn

字符串方法-search检索

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。

        //.需求:找到下面字符串中第一次出现数字的地方.
        let str = "蒋毅200龙龙300欧阳400";
        let res = str.search(/\d/);
        console.log(res); //2(下标)

字符串方法-split分割

split(“分隔符”),用正则表达式写分隔符,可以让分隔符局限性小。

        //1.把下面字符串中的名字分割出来
        let str = "蒋少200张少300王少400刘少";
        let arr = str.split(/\d+/);
        console.log(arr);

string.split()分割,arr.join()拼接

正则对象的相关方法

RegExp.test():测试字符串是否符合正则表达式,符合返回true,不符合返回false
RegExp.exec():正则对象的exec这个方法,提取满足正则规则的第一个.,加g也不能提取所有。注意:正则对象的exec方法提取符合正则规则的第一个,还会返回索引.

    var str = "哈哈哈哈哈111呵呵呵222嘿嘿333";
    var reg =  /\d{3}/g;

    let res = reg.exec(str);
    console.log(res);    //111  index=5

总结

细节太多,至少得都了解吧。

【正则表达式】 正则表达式的分组和引用 本文介绍了正则表达式中分组(Grouping)的概念与应用。主要内容包括:1. 分组的基本语法与作用(整体量词应用和内容捕获);2. 三种分组类型:捕获分组、非捕获分组和命名分组;3. 分组引用方法(反向引用和替换引用);4. 高级应用如条件匹配和平衡组;5. 常见问题与陷阱;6. 三个实践练习(重复邮箱检测、电话号码格式转换、HTML属性提取)。文章通过代码示例展示了分组在不同编程语言中的实现方式,并提供了测试用例验证正则表达式的有效性,适合网络安全和Python开发者学习参考。 阅读详情

相关推荐

Js中使用正则表达式验证输入是否有特殊字符

主要介绍了Js中使用正则表达式验证输入是否有特殊字符的简单代码,并通过一小段代码给大家介绍了js正则表达式验证同一字符串不同,需要的朋友可以参考下

js正则表达式匹配特殊字符

js正则表达式匹配特殊字符

一只很酸de橘子 3990

JS正则表达式必须包含数字、字母、特殊字符

主要介绍了JS正则表达式必须包含数字、字母、特殊字符的相关资料,文中还给大家提到了js 正则表达式 匹配除汉字,字母,数字,逗号,句号外的特殊字符(用来规范输入内容)需要的朋友可以参考下

最全面的65条最常用正则表达式

很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。 一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$

Keep_Driving_XinYang的博客 1184

js中过滤特殊字符的正则表达式

js中用正则表达式 过滤特殊字符 ,校验所有输入域是否含有特殊符号

js去除重复字符串两种实现方法

方法一: 代码如下:function checkRe(checkid) { var id = window.parent.getQry(“ctrid”) + “_”; var values = window.parent.opener.document.getElementById(id + “txt_dept_name”).value; var keys = window.parent.opener.document.getElementById(id + “hf_ids”).value; var ary = checkid.value.split(“|”); var newsValues

js正则表达式

1.正则表达式 2.正则表达式中的元字符 3.正则表达式的匹配范围 4.元字符的优先级 5.正则表达式的常用方法

qq_42349528的博客 3118

STM32 BLDC无刷电机霍尔信号捕获与换相控制实战解析

本文深入解析了STM32如何实现BLDC无刷电机的霍尔信号捕获与换相控制。详细阐述了硬件接口配置、定时器霍尔传感器模式的使用、抗干扰的滤波器与软件容错设计,以及中断服务与换相逻辑的实战代码。重点解决了信号抖动、换相不准等常见问题,旨在帮助开发者构建稳定可靠的电机驱动基础。

weixin_29193259的博客 368

JavaScript之正则表达式,web开发后台开发

使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个。表达式可匹配[ab5@]匹配 "a" 或 "b" 或 "5" 或 "@"[^abc]匹配 "a","b","c" 之外的任意一个字符[f-k]匹配 "f"~"k" 之间的任意一个字母[^A-F0-3]匹配 "A"~"F","0"~"3" 之外的任意一个字符。

2401_84097941的博客 1010

三极管特性曲线看不懂?手把手教你用Multisim仿真分析放大电路频率响应

本文针对模拟电路初学者,详细讲解如何利用Multisim软件进行电路仿真,将抽象的三极管特性曲线与放大电路频率响应分析变得直观可视。通过手把手教学,指导读者从导入三极管SPICE模型、仿真输出特性曲线,到分析动态工作点,最终使用波特图仪深入分析频率响应并进行补偿设计,有效帮助理解电路原理并指导实践调试。

weixin_29230059的博客 123

IEDA激活码失效?教你5分钟快速续期的方法

本文针对IEDA激活码失效问题,提供了一套从快速应急到深度排查的完整解决方案。文章不仅详解了5分钟快速续期与清理缓存等应急方法,更深入剖析了授权机制、离线激活流程,并指导如何构建可持续的授权管理策略,帮助开发者彻底解决激活困扰,确保开发环境稳定。

a0b1c2d3的专栏 274

JavaScript正则表达式:正则表达式中的特殊字符

正则表达式的组成一个正则表达式可以由简单的字符构成,比如 /abc/,也可以是简单和特殊字符的组合,比如 /ab*c/ 。其中特殊字符也被称为元字符,在正则表达式中是具有特殊意义的专用符号,如 ^ 、$ 、+ 等。特殊字符非常多,可以参考: MDN:正则表达式 - JavaScript | MDN (mozilla.org)jQuery 手册:正则表达式部分正则测试工具: 在线正则表达式测试这里我们把元字符划分几类学习 。边界符正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符。 如果 ^

薛定谔的猫 6747

2024最新版:MacOS Sonoma系统下CocoaPods安装全攻略(解决Ruby版本冲突)

本文详细介绍了在MacOS Sonoma系统下安装CocoaPods的全过程,重点解决Ruby版本冲突问题。通过HomeBrew安装最新Ruby版本,配置环境变量,并正确安装CocoaPods,帮助iOS开发者顺利管理项目依赖。文章还提供了常见问题的解决方案和优化配置建议,确保开发环境的稳定性和高效性。

lll78的博客 1042

05-JavaScript高级--正则表达式

正则表达式

qq_44451097的博客 162

态路小课堂丨三款800G光模块方案介绍—SR8/DR8/2FR4

800G QSFP-DD 2FR4光模块使用CWDM4波长(1271/1291/1311/1331nm),单通道速率为100G,通过MUX减小光纤的数目,其光学接口采用CS接口或双芯LC接口。

poposu的博客 2388

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 目录 Knowledge Engineering知识工程的简介 0.1、What 0.2、How 0.3、Why 1、知识工程过程的5个活动 2、知识图谱的应用 Knowledge Engineering知识工程的发展 1、前知识工程时期——1950-1970时期:图...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5336

JS高级 05.正则表达式、缓存、节流防抖

正则表达式 正则概念 正则表达式的定义 正则表达式:正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 正则表达式的作用 给定的字符串是否符合正则表达式的过滤逻辑(匹配) 可以通过正则表达式,从字符串中获取我们想要的特定部分(提取)

weixin_60806359的博客 306

一文吃透 SAP HANA SDA:把分散数据当作本地数据来用的那把钥匙

摘要:SAP HANA SDA(Smart Data Access)技术详解:150字精要 SAP HANA SDA是一种数据虚拟化技术,允许在不复制数据的情况下访问远端数据源。核心功能包括: 通过Remote Source定义连接配置 创建Virtual Table作为本地代理 支持谓词下推优化查询性能 与SDI技术协同工作扩展数据集成能力 典型应用场景包括: 跨系统联邦查询 冷热数据分层管理 混合云数据整合 远程表复制(RTR)实现近实时数据同步 实施要点: 需关注适配器能力差异 合理运用查询下推优化

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

《Javascript高级程序设计》(第2版)学习笔记05--正则表达式

http://iunbug.appspot.com/article.html?objNews.id=31003

iteye_11683的博客 137

涨点神器:基于YOLOv8的SPD-Conv小目标检测实战教程——让低分辨率场景检测精度飙升

从代码修改到场景落地,每一步都围绕“提升检测精度”这个核心目标,而实际数据也证明了这项技术的强悍——它不是实验室里的花拳绣腿,而是能真正解决工业痛点的涨点神器。在实际场景中,比如无人机巡检的低分辨率航拍图中,对电线、小设备的检测,YOLOv8-SPD的漏检率降低了70%以上。落地时,只需将训练好的YOLOv8-SPD模型部署到边缘设备或云端,即可享受其在小目标、低分辨率场景下的强大性能。的特征融合模块中,通过插入SPD-Conv,让模型在处理小目标时,既能保留空间细节,又能增强通道维度的特征表达。

m0_71589036的博客 157

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JS高级 之 RegExp - 正则表达式

JS高级 之 RegExp - 正则表达式

玄鱼殇 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JavaScript高级(二)|函数进阶+正则表达式

一.函数进阶 01.函数的定义与调用 1.1函数的定义方式 1.2函数的调用方式 02.this 2.1函数内this的指向 2.2改变函数内部this的指向 2.3 call apply bind总结 03.严格模式 3.1什么是严格模式 3.2开启严格模式 3.3严格模式中的变化 04.高阶函数 05.闭包 5.1变量作用域 5.2什么是闭包 5.3在chrome中调试闭包 5.4闭包的作用 5.5闭包案例 5.6闭包总结 06.递归 6.1什么是递归?

Better_Xing的博客 385

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

黑马程序员前端JavaScript高级——ES6学习笔记

黑马程序员前端教程的PPT和代码学习笔记,里面包含了面向对象的编程思想,以及构造函数,类和对象、原型链、箭头函数、数组和字符串新增方法、函数递归、深拷贝浅拷贝、正则表达式等知识点。本文是对优快云其他博主记录的一个补充,因为黑马也是今年才陆续补充一些知识点的视频的,本文将其收录于此,雷同勿怪。

weixin_44566194的博客 3720

JavaScript正则表达式:从基础到高级应用

正则表达式是处理字符串匹配的强大工具,通过特定语法模式实现高效的文本搜索与替换。其核心原理是基于有限状态自动机理论,能够以声明式方式描述复杂的字符串模式。在JavaScript中,正则表达式通过RegExp对象实现,支持字面量和构造函数两种创建方式。作为前端开发的关键技术,正则表达式在表单验证、数据提取、文本处理等场景中具有重要价值。掌握贪婪匹配、分组捕获、边界断言等高级特性,能够显著提升开发效率。本文结合字符类、量词等热词,深入解析JavaScript正则表达式的工程实践与性能优化技巧。

weixin_29005499的博客 311

Python与JavaScript正则表达式详解

本文介绍了Python和JavaScript中正则表达式的基础用法和核心功能

nineeea的博客 908
上一篇: JS高级04
下一篇: jQuery01
Ordbiao
博客等级 码龄7年 15粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值