ES6标准入门 第五章:正则的扩展
1、RegExp 构造函数
ES5的缺陷:
ES5中构造函数的参数有两种情况:
(1)参数是字符串,这时第二个参数表示正则表达式的的修饰符(flag)。
var reg = new RegExp( "xyz", "i" ); 等价于 var reg = /xyz/i;
(2)参数是一个正则表达式,返回一个原有正则表达式的拷贝。
var reg = new RegExp( /xyz/i ); 等价于 var reg = /xyz/i;
不允许使用第二个参数指定修饰符,否则会报错。
var regex = new RegExp(/xyz/, 'i'); // 报错
ES6的改进:
ES6中RegExp构造函数 第一个参数是一个正则表达式,可以使用第二个参数只当修饰符。 指定的修饰符会覆盖原有正则表达式的修饰符。
new RegExp(/abc/ig, 'i').flags; // i
2、字符串的正则方法
字符串对象有四个方法可以调用正则表达式: match()、replace()、search()、split()
ES6内部,将与正则相关的方法全部定义在 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]
3、u修饰符
ES5不支持四字节的UTF-16编码,将其识别为两个字符。
/^\uD83D/.test('\uD83D\uDC2A'); // true
ES6对正则表达式添加了u修饰符,含义为“Unicode”模式;用来正确处理 大于 /uFFFF 的字符【四字节的UTF-16编码】。将其识别为一个字符。
/^\uD83D/u.test('\uD83D\uDC2A'); // false
加上u修饰符,以下正则表达式的行为就会被修改:
(1)点字符
点字符(.
)在正则中的含义:除了换行符以外的任意单个字符。
点字符不能识别大于0xFFFF 的Unicode字符,必须加上u修饰符才能识别。
var s = 'ES6标准入门 第五章:正则的扩展的更多相关文章
- ES6标准入门 第五章:函数的扩展
1.函数参数的默认值 (1)基本用法 ES5 中, 不能直接为函数的参数指定默认值.只能采用变通的方法. function log(x, y) { y = y || 'World'; console. ...
- ES6标准入门 第五章:数值的扩展
1.二进制和八进制数值表示法 二进制前缀:0b(或0B): 八进制前缀:0o(或0O). 注意:ES5的严格模式 和 ES6中不再允许使用 0 表示八进制. 将二进制和八进制数值转换为十进制数值 ...
- ES6学习 第五章 正则的扩展
前言 本章介绍正则的扩展.有些不常用的知识了解即可. 本章原文链接:正则的扩展 RegExp 构造函数 从 ES6 开始,如果RegExp构造函数第一个参数是一个正则对象,并且第二个标志存在且为标志参 ...
- ES6标准入门 第三章:变量的解构赋值
解构赋值:从数组和对象中提取值,对变量进行赋值. 本质上,这种写法属于“匹配模式”:只要等号两边的模式相同,左边的变量就会被赋予对应的值. 1.数组的结解构赋值 基本用法 let [foo, [[ba ...
- ES6标准入门 第四章:字符串的扩展
1.字符串的Unicode 表示法 JavaScript 允许采用 \uxxxx 表示一个字符,其中 xxxx 表示字符的码点. "\u0061" // "a" ...
- [转] 《ES6标准入门》读书笔记
来源:https://segmentfault.com/a/1190000005863641 let和const命令 ES6新增let命令,用于声明变量,是块级作用域. let声明的变量不会像var声 ...
- ES6标准入门之变量的解构赋值简单解说
首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...
- Python 3标准库 第五章 数学运算
第五章数学运算-----------------------上下文解释:编程时,我们一般也是先给程序定义一些前提(环境变量.描述环境变化的全局变量等),这些“前提”就是上文,然后再编写各功能模块的代码 ...
- 《ES6标准入门》读书笔记 第5章 - 正则增强
第五章 - 正则增强 构造函数增强 允许覆写修饰符,如new RegExp(someRegex, 'ig') 字符串上的正则方法 原先match.replace等可以调用正则的方法在String的原型 ...
随机推荐
- yum 安装mysql-server 5.6
# rpm ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm # yum install -y mysql-s ...
- yaourt
https://blog.csdn.net/relcodego/article/details/50531379 https://blog.csdn.net/lsvtogergo/article/de ...
- inoutfy与rsync进行实时同步
更新阿里epel源 安装镜像源 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo --- 扩展 ...
- 聚合函数 Aggregate Function
聚合函数是用来统计每个分组的统计信息,它们要跟 group by 一起使用,用来将每个分组所有数据 聚合 成一条统计数据. 包括 max/min/count/avg/sum 等. -- 按照部门进行分 ...
- MegaPixImage插件代码(new MegaPixImage)
/** * Mega pixel image rendering library for iOS6 Safari * * Fixes iOS6 Safari's image file renderin ...
- 深入理解vue 修饰符sync
[ vue sync修饰符示例] 在说vue 修饰符sync前,我们先看下官方文档:vue .sync 修饰符,里面说vue .sync 修饰符以前存在于vue1.0版本里,但是在在 2.0 中移除了 ...
- bootstrap导航菜单做active判断
先创建2个文件,index 和about,导入bootstrap的css <div class="container"> <ul class="nav ...
- 34 String、StringBuffer、StringBuilder
String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间. StringBuffer是可变类,和线程安全的字符串操作类,任何对 ...
- Jenkins自动打包并部署(以java -jar形势运行)
1.打包 与平常maven项目打包一致,不再赘述 2.杀死原有进程 通过 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` 获取当前 ...
- 对elementui整体设计分析-------引用
1.需求分析 丰富的 feature:丰富的组件,自定义主题,国际化. 文档 & demo:提供友好的文档和 demo,维护成本小,支持多语言. 安装 & 引入:支持 npm 方式和 ...