随笔记录--RegExp类型
阅读Javascript高级程序设计第五章 -- RegExp类型总结
对于基础教程部分, 有小伙伴不熟悉的,可以参考 正则表达式 - 教程
1. 基础部分回顾:
ECMASript通过RegExp类型来支持正则表达式, 语法如下
var expression = / pattern /flags;
参数介绍: pattern部分可以是如何简单或复杂的正则表达式,可以包含字符类,限定符,分组,向前查找以及反向引用. 每个正则表达式都可以带一个或多个flags,用以标明正则表达式的行为.
⭕️ g: 表示全局模式,即模式将被应用与所有字符串;
⭕️ i: 表示不区分大小写模式;
⭕️ m: 表示多行模式, 即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项.
与其他语言中的正则表达式类似, 模式中使用的所有元字符都必须转移. 正则表达式中都元字符包括
( [ { \ ^ & | ) ? * + . ] }
举例说明:
let pattern1 = /at/g; //匹配字符串中所有"at"实例
let pattern2 = /[bc]at/i; // 匹配第一个"bat"或"cat", 不区分大小写
let pattern3 = /\[bc\]at/i; // 匹配第一个"[bc]at", 不区分大小写
let pattern4 = /.at/gi; //匹配所有以"at"结尾的3个字符的组合,不区分大小写
let pattern5 = /\.at/gi; // 匹配所有以".at",不区分大小写
除以上字面量模式, 正则表达式还常采用构造函数new RegExp(pattern,flags)来定义正则表达式
let reg = new RegExp(pattern,flags);
两者是等价的
let pattern1 = /[bc]at/i; // 匹配第一个"bat"或"cat", 不区分大小写
等价于 let pattern2 = new RegExp("[bc]at","i");
备注: 传递个RegExp构造函数的两个参数都是字符串. 由于RegExp构造函数的模式参数是字符串, 所以在某些情况下要对字符串进行双重转义. 因此, 上面列举对元字符都必须进行双重转义.

2. RegExp实例属性
⭕️ global: 布尔值, 表示是否设置了g标志
⭕️ ignoreCase: 布尔值, 表示是否设置了i标志
⭕️ lastIndex: 整数, 表示开始搜索下一个匹配项的字符位置,从0算起
⭕️ multiline: 布尔值, 表示是否设置了m标志
⭕️ source: 正则表达式字符串表示,按照字面量形式而非传人构造函数中的字符串模式返回
举例说明实例属性各个性质
let p1 = /\[bc\]at/g;
let p2 = new RegExp("\\[bc\\]at","g");
console.log(p1.global); // true
console.log(p1.ignoreCase); // false
console.log(p1.lastIndex); //
console.log(p1.multiline); // false
console.log(p1.source); // "\[bc\]at"
console.log(p2.source); // "\[bc\]at"
3 正则表达式实例方法
3.1 RegExp对象的主要方法之一是exec()
3.2
4 RegExp 构造函数属性
RegExp构造函数包含一些属性( 这些属性在其他语言中被看成是静态属性 ). 这些属性适用于作用域中所有的正则表达式,并且基于所执行的最近一次正则表达式操作而变化, 这些属性有一个长属性名和短属性名. 列表如下

举例说明
let str = "this is number of wuhan i love you yyhan";
let reg = /(.)han/g;
if(reg.test(str)){
console.log(RegExp.input);
console.log(RegExp.$1);
console.log(RegExp.lastMatch);
console.log(RegExp.lastParen);
console.log(RegExp.leftContext);
console.log(RegExp.rightContext);
console.log(RegExp.multiline);
console.log(RegExp.name);
} console.log("写法 **********上 等价 下***********"); if(reg.test(str)){
console.log(RegExp.$_);
console.log(RegExp.$1);
console.log(RegExp["$&"]);
console.log(RegExp["$+"]);
console.log(RegExp["$`"]);
console.log(RegExp["$'"]);
console.log(RegExp["$*"]);
console.log(RegExp.name);
}
打印结果
this is number of wuhan i love you yyhan
u
uhan
u
this is number of w
i love you yyhan
undefined
RegExp
写法 **********上 等价 下***********
this is number of wuhan i love you yyhan
y
yhan
y
this is number of wuhan i love you y
undefined
RegExp
随笔记录--RegExp类型的更多相关文章
- 随笔记录--Array类型
前言:除了Object类型之外,Array类型恐怕是ECMAScript中最常用的类型了.而且,ECMAScript中数组与其他多数语言中的数组有很大差别,ECMAScript数组中的每一项可以保存任 ...
- RegExp类型exec()方法的返回值说明
之前看别人写的插件经常会用到RegExp对象来验证输入,并且获取一些那时我并不晓得是什么东西的数组,来取值进行自定义的逻辑处理.今天学习了一下RegExp类型.终于有了一个初步的了解,至少不会看一会就 ...
- MapXtreme 随笔记录1
最近在用MapXtreme做项目,随笔记录备忘. 声明:PubMapPara 静态类,后缀为静态类成员变量 1.加载地图 /// <summary> /// 地图工作空间文件路径 /// ...
- 引用类型-RegExp类型
JavaScript高级程序设计(第三版)笔记-第五章-RegExp类型 定义正则表达式有两种方式 1.用字面量形式定义正则表达式: ver expression = /patterns/flags; ...
- RegExp类型,单体内置对象
1.RegExp类型: 1)什么是正则表达式:RegExp --是一种规则,模式 --强大的字符串匹配工具 --创建: --使用RegExp构造函数创建:var re=new ...
- js中RegExp类型
ECMAScript通过RegExp类型来支持正则表达式. var expression = / pattern / flag ; pattern可以是任意的正则表达式.每个正则都带有标志,用以正则表 ...
- 5.4 RegExp类型
ECMAScript通过RegExp类型来支持正则表达式.使用下面类似Perl的语法,就可以创建一个正则表达式. var expression=/pattern/flags; 复制代码 其中的模式(p ...
- 《JavaScript高级程序设计》读书笔记 ---RegExp 类型
ECMAScript 通过RegExp 类型来支持正则表达式.使用下面类似Perl 的语法,就可以创建一个正则表达式.var expression = / pattern / flags ; 其中的模 ...
- Javascript高级编程学习笔记(15)—— 引用类型(4)RegExp类型
JS中处理字符串最常用的应该就是正则了 同样正则(RegExp)类型也是JS中引用类型的一种 ECMAScript通过 RegExp类型 来支持正则表达式 创建正则 var expression = ...
随机推荐
- vue动画效果出现重叠,并且出现滚动条
背景 使用 vue 结合 animated css 第三方动画样式,简单地给页面组件加上切换时的 fade 淡入/淡出动画效果 当调试效果时发现,展示效果出现了问题,并且出现滚动条 原因 退场动画还没 ...
- 微信小程序入门笔记
目录的作用: 1. pages目录: 该目录下存放所有的定义页面 2. utils目录: 该目录下存放定义的一些小功能组件 3. 根目录下app.js文件: 定义小程序对象, 执行小程序生命周期内的各 ...
- Linux性能优化实战学习笔记:第三十三讲
一.上节回顾 前几节,我们一起学习了文件系统和磁盘 I/O 的工作原理,以及相应的性能分析和优化方法.接下来,我们将进入下一个重要模块—— Linux 的网络子系统. 由于网络处理的流程最复杂,跟我们 ...
- Note | PyTorch官方教程学习笔记
目录 1. 快速入门PYTORCH 1.1. 什么是PyTorch 1.1.1. 基础概念 1.1.2. 与NumPy之间的桥梁 1.2. Autograd: Automatic Differenti ...
- API加密框架原理解密
关于框架的使用文章请参考: 前后端API交互如何保证数据安全性?:http://cxytiandi.com/blog/detail/20235 API数据加密框架monkey-api-encrypt: ...
- 申请Github学生包(用学生证就行,免教育邮箱)
GitHub教育包的福利: 大名鼎鼎的JetBrains给学生教师的免费个人许可 https://education.github.com/pack/redeem/jetbrains 有Github学 ...
- greatest among three numbers
public class Solution { public static void main(String[] args) { Scanner ip = new Scanner(System.in) ...
- 谈谈IntersectionObserver懒加载
概念 IntersectionObserver接口(从属于Intersection Observer API)为开发者提供了一种可以异步监听目标元素与其祖先或视窗(viewport)交叉状态的手段.祖 ...
- Visual Studio 调试系列5 检查变量(使用自动窗口和局部变量窗口)
系列目录 [已更新最新开发文章,点击查看详细] 在调试时,“自动变量”和“局部变量”窗口会显示变量值. 仅在调试会话期间,这两个窗口才可用. “自动变量”窗口显示当前断点周围使用的变量. “局 ...
- windows php 下的各个版本的资源下载地址
历史版本: https://windows.php.net/downloads/releases/archives/ 新版本: https://windows.php.net/download/ 找的 ...