ES6学习笔记之正则表达式和字符串正则方法分析


Posted in Javascript onApril 25, 2017

本文实例讲述了ES6正则表达式和字符串正则方法。分享给大家供大家参考,具体如下:

RegExp构造函数

在ES5中,RegExp构造函数的参数有两种情况。

第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。

var regex = new RegExp('xyz', 'i');
// 等价于
var regex = /xyz/i;

第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。

var regex = new RegExp(/xyz/i);
// 等价于
var regex = /xyz/i;

但是,ES5不允许此时使用第二个参数,添加修饰符,否则会报错。

var regex = new RegExp(/xyz/, i);
// Uncaught TypeError: Cannot supply flags when constructing one RegExp from another

ES6改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而且,返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符。

new RegExp(/abc/ig, 'i').flags
// "i"

上面代码中,原有正则对象的修饰符是ig,它会被第二个参数i覆盖。

字符串的正则方法

字符串对象共有4个方法,可以使用正则表达式:match()replace()search()split()

ES6将这4个方法,在语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全都定义在RegExp对象上。

String.prototype.match 调用 RegExp.prototype[Symbol.match]
String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
String.prototype.search 调用 RegExp.prototype[Symbol.search]
String.prototype.split 调用 RegExp.prototype[Symbol.split]

字符串对象共有4个方法,可以使用正则表达式:match()、replace()、search()和split()。

Javascript 相关文章推荐
Javascript下IE与Firefox下的差异兼容写法总结
Jun 18 Javascript
jquery attr 设定src中含有&(宏)符号问题的解决方法
Jul 26 Javascript
JS实现图片翻书效果示例代码
Sep 09 Javascript
location.href用法总结(最主要的)
Dec 27 Javascript
jQuery自定义事件的简单实现代码
Jan 27 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
Nov 02 Javascript
Javascript中innerHTML用法实例分析
Jan 12 Javascript
js判断鼠标左、中、右键哪个被点击的方法
Jan 27 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
JavaScript原生节点操作小结
Jan 17 Javascript
Vue实现动态显示textarea剩余字数
May 22 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
Apr 25 #Javascript
整理一些最近经常遇到的前端面试题
Apr 25 #Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 #Javascript
js实现延迟加载的几种方法
Apr 24 #Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 #Javascript
浅析Angular2子模块以及异步加载
Apr 24 #Javascript
Angular2使用Guard和Resolve进行验证和权限控制
Apr 24 #Javascript
You might like
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
js function定义函数使用心得
2010/04/15 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
c++生成dll使用python调用dll的方法
2014/01/20 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
Exception类的常用方法
2012/06/16 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
销售辞职报告范文
2014/01/12 职场文书
致800米运动员广播稿
2014/02/16 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
还款承诺书范本
2015/01/20 职场文书
大学生实习推荐信
2015/03/27 职场文书
红色电影观后感
2015/06/18 职场文书
心理健康教育主题班会
2015/08/13 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js