//下面三行代码效果一样
//全局匹配开头为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修饰符)的更多相关文章

  1. es6的正则扩展笔记之修饰符

    es6对于正则表达式添加了 u 修饰符和 y 修饰符. u 修饰符:含义为“Unicode模式”,用来正确处理大于\uFFFF的Unicode字符.    该修饰符不光会正确处理正则表达式,还会正确处 ...

  2. Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符

    四.匹配分组   [元字符] 分组符号 a|b   匹配字符a 或 字符b  (如果两个当中有重合部分,把更长的那个放前面) (ab)   匹配括号内的表达式 ,将()作为一个分组 num  引用分组 ...

  3. 【es6】正则扩展

  4. ES6 正则扩展

    一.新增 flags 属性 ES6 为正则表达式新增了flags属性,会返回正则表达式的修饰符. // ES5 的 source 属性 // 返回正则表达式的正文 /abc/ig.source // ...

  5. ES6(正则扩展)

    ES6中正则的扩展 正则新增特性 一.构造函数的变化 1.ES5中new一个正则对象方法 (一行中2个参数,二行中1个参数) (第一行中的第一个参数必须是字符串) 2.ES6中新增一种方法(构造函数) ...

  6. es6基础(3)-正则扩展

    //正则扩展 { let regex=new RegExp('xyz','i'); let regex2=new RegExp(/xyz/i); console.log(regex.test('xyz ...

  7. es6 语法 (正则扩展)

    { //es5中 let regex = new RegExp('xyz', 'i'); let regex2 = new RegExp(/xyz/i); console.log(regex.test ...

  8. ES6入门——正则的扩展

    1.RegExp构造函数 在ES5中,RegExp构造函数的参数有两种情况.第一种情况是参数是字符串,这时第二个参数表示正则表达式的修饰符:第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表 ...

  9. ES6对正则的改进(简要总结)

    文章目录 正则的扩展 1. RegExp 构造函数 2. 字符串的正则方法 3. u 修饰符 4. y 修饰符 5. sticky 属性 6. flags 属性 7. s 修饰符:dotAll 模式 ...

随机推荐

  1. 《手把手教你》系列技巧篇(十一)-java+ selenium自动化测试-元素定位大法之By tag name(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...

  2. 虚拟机安装的kali操作系统实现共享文件夹

    虚拟机共享文件夹设置. 1.[虚拟机]-->[设置] 2.先在本地新建一个共享文件夹,然后将此文件夹的路径添加到虚拟机 3.进入kali操作系统,运行命令sudo vmhgfs-fuse .ho ...

  3. 开机时自动启动的AutoHotkey脚本

    ;;; 开机时自动启动的AutoHotkey脚本;; 此脚本修改时间 2019年06月18日20时48分;; 计时器创建代码段 ------------------------------------ ...

  4. 2019-07-06 sql 连续出现次数

    由手机通讯记录界面想到的问题 SELECT CASE WHEN AA.num=1 THEN AA.Tel ELSE AA.Tel+'('+CASt(AA.num AS VARCHAR(4))+')' ...

  5. 2019.06.28 MERGE INTO备忘

    --保存主表 MERGE INTO dbo.DeliveryReceiving AS t USING @ReceiveMainDt AS s ON t.Id=s.id WHEN MATCHED THE ...

  6. CF427C题解

    Description 有一张带点权有向图,你要在其中修建若干个检查站,使得对于每一个点 \(p\) ,都有 \(\geq 1\) 个检查站,满足: 存在一条从这个检查站出发到点 \(p\) 的路径: ...

  7. AcWing 第11场周赛题解

    计算abc 首先 \(0<=a<=b<=c\) 会随机给出 \(a+b,a+c,b+c,a+b+c\)的值 因为\(a,b,c\)都为正整数,所以\(a+b+c\)一定为最大值 然后 ...

  8. Kali中John的使用方法

    John是一个破解系统密码的工具. 参数 John the Ripper 1.9.0-jumbo-1 OMP [linux-gnu 64-bit x86_64 AVX AC] Copyright (c ...

  9. Nacos 笔记

    Nacos 笔记 目录 Nacos 笔记 1. Nacos简介 1.1 主流配置中心对比 1.2 主流注册中心对比 1.3 Nacos特性 2. 安装启动 支持外部 MySQL 3. 配置管理 3.1 ...

  10. 目录已存在导致Jenkins项目构建失败的解决方法

    Jenkins中的项目在下载源代码时,如果Working Directory中存在未加入版本控制的文件或者目录已经存在于SVN库中,会导致更新失败,整个构建终止,解决方法是将SVN的检出策略由&quo ...