//下面三行代码效果一样
//全局匹配开头为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. SAML 2.0 流程分析(2)

  2. Bootstrap 树形列表与右键菜单

    Bootstrap 树形列表与右键菜单 介绍两个Bootstrap的扩展 Bootstrap Tree View 树形列表 jQuery contextMenu 右键菜单 Demo采用CDN分发,直接 ...

  3. Android系统编程入门系列之加载服务Service

    之前几篇文章简单梳理了在Android系统的四大组件之一,最主要的界面Activity中,使应用程序与用户进行交互响应的相关知识点,那对于应用程序中不需要与用户交互的逻辑,又要用到哪些内容呢?本文开始 ...

  4. 树莓派压力测试工具S-Tui + Stress的使用

    压力测试工具S-Tui + Stress的使用 树莓派# 背景故事 打算测试一下树莓派外壳的散热性能,需要能压满CPU100%,同时显示温度.CPU频率.CPU占用率,那么这款工具你值得拥有. 软件介 ...

  5. 分享我的CleanArchitecture for Razor Page项目模板

    这个项目是参考和整合了jasontaylordev/CleanArchitecture 和 blazorhero/CleanArchitecture 代码基础上,重构出来的新的项目,这两个项目都是非常 ...

  6. Centos配置网络和主机映射

    目录 虚拟机网络的三种配置方式 配置虚拟机IP 主机映射问题 配置虚拟机的主机名 虚拟机远程登录 虚拟机网络的三种配置方式 桥接模式:当前虚拟机与主机在同一个局域网下,同一个局域网下的所有电脑都可以访 ...

  7. SpringCloud升级之路2020.0.x版-12.UnderTow 简介与内部原理

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 在我们的项目中,我 ...

  8. 0基础学小程序----day2

    目录结构的三部分如上 下来我们看看  框架全局文件 app.js小程序逻辑 再看app.json 小程序公共设置可以对五个功能进行设置 我们再来逐一看看 页面路径那里  你建个路径,他会自动生成文件夹 ...

  9. Java程序设计(2021春)——第四章接口与多态课后题(选择题+编程题)答案与详解

    Java程序设计(2021春)--第四章接口与多态课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第四章接口与多态课后题(选择题+编程题)答案与详解 第四章选择题 4.0 ...

  10. DVWA靶场之Command Injection(命令行注入)通关

    Command Injection Low: <?php if( isset( $_POST[ 'Submit' ]  ) ) { // Get input $target = $_REQUES ...