ES6扩展——正则扩展(u、y修饰符)
2024-10-18 03:48:11
//下面三行代码效果一样
//全局匹配开头为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() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
最新文章
- 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限
- poj1985 Cow Marathon (求树的直径)
- 关于spring配置文件properties的问题
- Windows Internals学习笔记(一)概念与工具
- STM32中的位带(bit-band)操作
- How a non-windowed component can receive messages from Windows -- AllocateHWnd
- MSP430F149模拟IIC读写24C02程序
- POJ 1696 Space Ant(点积的应用)
- Cocos2d-x 3.0 红孩儿私人义务教育 - 第一章 熟人Cocos2d-x 3.0project
- 详细说明XML分解(两)—DOM4J
- hdu 2067 兔子板
- ArcGIS API for JavaScript 4.2学习笔记[7] 鹰眼(缩略图的实现及异步处理、Promise、回调函数、监听的笔记)
- java之Spring(AOP)前奏-动态代理设计模式(下)
- thinkphp 5.0 在appache下隐藏index.php入口代码
- C# 在PPT幻灯片中创建图表
- .NET使用gRPC
- 2019/3/4 java集合学习(二)
- redis使用问题一:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool] with root cause
- 连接redis错误:ERR Client sent AUTH, but no password is set
- MarkDown总结
热门文章
- PAT甲级:1136 A Delayed Palindrome (20分)
- 在Windows7/8/10 64位操作系统下安装并注册ocx控件
- 第十三天 -- 如何用U盘重装系统Win10以及如何用VMware12安装Win10
- element+vue点击新增表格内在已有数据添加一行带输入框内容
- decimal和float的区别
- azure删除ns时一直处于terminating状态
- 来看看是什么原因导致生产服上的系统CPU高的?
- 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?
- 【LeetCode】169. 多数元素
- Create Virtual Network with VirtualBox on Mint 14