//下面三行代码效果一样
//全局匹配开头为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() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
 

最新文章

  1. 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限
  2. poj1985 Cow Marathon (求树的直径)
  3. 关于spring配置文件properties的问题
  4. Windows Internals学习笔记(一)概念与工具
  5. STM32中的位带(bit-band)操作
  6. How a non-windowed component can receive messages from Windows -- AllocateHWnd
  7. MSP430F149模拟IIC读写24C02程序
  8. POJ 1696 Space Ant(点积的应用)
  9. Cocos2d-x 3.0 红孩儿私人义务教育 - 第一章 熟人Cocos2d-x 3.0project
  10. 详细说明XML分解(两)—DOM4J
  11. hdu 2067 兔子板
  12. ArcGIS API for JavaScript 4.2学习笔记[7] 鹰眼(缩略图的实现及异步处理、Promise、回调函数、监听的笔记)
  13. java之Spring(AOP)前奏-动态代理设计模式(下)
  14. thinkphp 5.0 在appache下隐藏index.php入口代码
  15. C# 在PPT幻灯片中创建图表
  16. .NET使用gRPC
  17. 2019/3/4 java集合学习(二)
  18. redis使用问题一:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool] with root cause
  19. 连接redis错误:ERR Client sent AUTH, but no password is set
  20. MarkDown总结

热门文章

  1. PAT甲级:1136 A Delayed Palindrome (20分)
  2. 在Windows7/8/10 64位操作系统下安装并注册ocx控件
  3. 第十三天 -- 如何用U盘重装系统Win10以及如何用VMware12安装Win10
  4. element+vue点击新增表格内在已有数据添加一行带输入框内容
  5. decimal和float的区别
  6. azure删除ns时一直处于terminating状态
  7. 来看看是什么原因导致生产服上的系统CPU高的?
  8. 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?
  9. 【LeetCode】169. 多数元素
  10. Create Virtual Network with VirtualBox on Mint 14