ES6扩展——正则扩展(u、y修饰符)
//下面三行代码效果一样
//全局匹配开头为a的
const regexp1 = /^a/g; const regexp2 = new RegExp('a','g');
const regexp3 = new RegExp(/^a/);
const regexp4 = new RegExp(/a/); console.log('aabbcc'.match(regexp1)); //['a']
console.log('bbaacc'.match(regexp1)); //null
console.log('baa'.match(regexp3)); //['a','a']
console.log('baa'.match(regexp4)); //['a'] //es6下正则变化
//1.构造函数的变化:写了修饰符,第二个参数再写修饰符的话也不会报错.而且第二个参数的修饰符会覆盖前面的
//regex.flags返回修饰符
const regexp5 = new RegExp(/a/giuy,'ig'); //regexp5.flags返回ig //es6下新增的修饰符
//1.u代表unicode,可以用它识别大于两个字节的unicode的字符
//想要把后面两个码点识别成一个字符
console.log(/^ud83d/u.test('\ud83d\udc36')); //false //y 粘连修饰符 sticky
//g和y会把整个字符串中满足的条件都给匹配到
//不同之处在于y要保证从上一个匹配结果的索引开始就满足匹配条件,这样才会进行下一次的匹配,否则就匹配结束.
const r1 = /imooc/g;
const r2 = /imooc/y; const str = 'imoocimooc-imooc'; console.log(r1.exec(str));
console.log(r1.exec(str));
console.log(r1.exec(str));
console.log(r1.exec(str));
u指Unicode的意思
console.log(/^\ud83d/.test('\ud83d\udc36'))
这里的\ud83d\udc36会被当做2个字符,所以返回的是true;
console.log(/^\ud83d/u.test('\ud83d\udc36'))
加了u修饰符,\ud83d\udc36会被当做1个字符,所以返回的是false y指粘连修饰符 sticky
如图:---
修饰符y 和修饰符g相似点:
都是不会只匹配一个就结束,都是尽可能的去匹配
不同点:
y要保证从上一个匹配的索引开始就满足条件,才进行下一个匹配,否则匹配结束;
g没有这个要求,只要有满足要求的字符串,都会进行匹配
g--表示全局匹配 global
i--忽略大小写
u--unicode识别字符
y--粘连修饰符
match是正则中的方法,可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 语法:stringObject.match(regexp) stringObject是字符串,regexp是正则
test() 方法用于检测一个字符串是否匹配某个模式。返回值是true或者false;
exec() 方法用于检索字符串中的正则表达式的匹配;
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
ES6扩展——正则扩展(u、y修饰符)的更多相关文章
- es6的正则扩展笔记之修饰符
es6对于正则表达式添加了 u 修饰符和 y 修饰符. u 修饰符:含义为“Unicode模式”,用来正确处理大于\uFFFF的Unicode字符. 该修饰符不光会正确处理正则表达式,还会正确处 ...
- Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符
四.匹配分组 [元字符] 分组符号 a|b 匹配字符a 或 字符b (如果两个当中有重合部分,把更长的那个放前面) (ab) 匹配括号内的表达式 ,将()作为一个分组 num 引用分组 ...
- 【es6】正则扩展
- ES6 正则扩展
一.新增 flags 属性 ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符. // ES5 的 source 属性 // 返回正则表达式的正文 /abc/ig.source // ...
- ES6(正则扩展)
ES6中正则的扩展 正则新增特性 一.构造函数的变化 1.ES5中new一个正则对象方法 (一行中2个参数,二行中1个参数) (第一行中的第一个参数必须是字符串) 2.ES6中新增一种方法(构造函数) ...
- es6基础(3)-正则扩展
//正则扩展 { let regex=new RegExp('xyz','i'); let regex2=new RegExp(/xyz/i); console.log(regex.test('xyz ...
- es6 语法 (正则扩展)
{ //es5中 let regex = new RegExp('xyz', 'i'); let regex2 = new RegExp(/xyz/i); console.log(regex.test ...
- ES6入门——正则的扩展
1.RegExp构造函数 在ES5中,RegExp构造函数的参数有两种情况.第一种情况是参数是字符串,这时第二个参数表示正则表达式的修饰符:第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表 ...
- ES6对正则的改进(简要总结)
文章目录 正则的扩展 1. RegExp 构造函数 2. 字符串的正则方法 3. u 修饰符 4. y 修饰符 5. sticky 属性 6. flags 属性 7. s 修饰符:dotAll 模式 ...
随机推荐
- POJ1417 True Liars 题解
通过读题,容易发现,当回答为yes时 \(x,y\) 必属于同类,当回答为no时二者必为异类(并且当 \(x=y\) 时,回答必为yes,不过这题不用这个性质). 于是先按关系维护连通块,然后求出每个 ...
- k8s系列文章第五篇(docker-compose)
更多精彩内容,猛搓这里 目录 一.Docker Compose 1.前言 2.官方介绍 1.Compose 中有两个重要的概念 2.三步骤 3.Compose是Docker官方的开源项目,需要安装! ...
- (Opencv02)图片展示
(Opencv02)图片展示 在程序里我们怎么把图片显示出来呢? 这里需要记一个自定义函数就好啦! def cv_show(name, img): cv2.imshow(name, img) ...
- sessionfilter中的拦截项判断
- 【奇妙的JavaScript】# 1
奇妙的JavaScript 本专题整理了一些JavaScript的怪异行为,大部分都是选择题,题目都是简单的表达式.可以测试你有多了解 JavaScript,拓宽你的认知边界! 该专题计划每周更新1- ...
- kubernetes/k8s CRI分析-kubelet创建pod分析
先来简单回顾上一篇博客<kubernetes/k8s CRI 分析-容器运行时接口分析>的内容. 上篇博文先对 CRI 做了介绍,然后对 kubelet CRI 相关源码包括 kubele ...
- Vulhub-DC-4靶场
Vulhub-DC-4靶场 前言 这套靶场的亮点在于对hydra的运用比较多,在遇到大容量字典的时候,BurpSuite可能会因为设置的运行内存的限制,导致字典需要花很长时间导入进去,虽然通过修改配置 ...
- 在线文本的编辑框——kindeditor富文本编辑的使用
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- 如何在Spring Data MongoDB 中保存和查询动态字段
原文: https://stackoverflow.com/questions/46466562/how-to-save-and-query-dynamic-fields-in-spring-data ...
- elsa-core—2.Hello World: HTTP
在本快速入门中,我们将了解一个执行工作流的最小 ASP.NET Core 应用程序.工作流将侦听传入的 HTTP 请求并写回一个简单的响应. 我们将: 创建 ASP.NET Core 应用程序. 使用 ...