es6基础(3)-正则扩展
//正则扩展
{
let regex=new RegExp('xyz','i');
let regex2=new RegExp(/xyz/i); console.log(regex.test('xyz123'),regex2.test('xy'));
//后面的修饰符i覆盖原来的ig修饰符
let regex3=new RegExp(/xyz/ig,'i');
console.log(regex3.flags);
} {
let s='bbb_bb_b';
//g,y都是全局匹配
let a1=/b+/g;
let a2=/b+/y;
console.log('one:',a1.exec(s),a2.exec(s));//第一次都是从头开始匹配,bbb
console.log('two:',a1.exec(s),a2.exec(s));//第二次,g会忽略_直接bb,y不会忽略,所以匹配不到
//sticky查看是否开启了y修饰符
console.log(a1.sticky,a2.sticky);
} //ES6 对正则表达式添加了 u 修饰符,含义为 "Unicode模式",用来正确处理大于 \uFFFF 的Unicode字符。也就是说,会正确处理四个字符的 UTF-16 编码。
//字符串大于两个字节的要加上u
{
console.log('u-1',/^\uD83D/.test('\uD83D\uDC2A'));//true
console.log('u-2',/^\uD83D/u.test('\uD83D\uDC2A')); //false
//上面代码中,\uD83D\uDC2A 是一个四字节的UTF-16 编码,代表一个字符,但是,ES5不支持四个字节的 UTF-16 编码,会将其识别为两个字符,导致第一行代码结果为 true ,加了u修饰符以后,ES6就会识别其为一个字符,所以第二行代码结果为false。
//一旦加上 u 修饰符号,就会修改下面这些正则表达式的行为 console.log(/\u{61}/.test('a'));//false
console.log(/\u{61}/u.test('a'));//true
}
//点(.)字符在正则表达式中,含义是除了换行符以外的任意单个字符。对于码点大于 oxFFFF 的 Unicode 字符,点字符不能识别,必须加上 u 修饰符。
{
console.log(`\u{20BB7}`);
let s='es6基础(3)-正则扩展的更多相关文章
- 【ES6基础】字符串扩展
4.字符串扩展 (1)for...of循环遍历. let foo = [1,2,3,4,5,6] for(let i of foo){ console.log(i); } 结果: (2)include ...
- es6 语法 (正则扩展)
{ //es5中 let regex = new RegExp('xyz', 'i'); let regex2 = new RegExp(/xyz/i); console.log(regex.test ...
- es6基础(6)--数组扩展
//数组扩展 { let arr=Array.of(3,4,6,7,9,11);//可以是空 console.log('arr=',arr);//[3,4,6,7,9,11] } { //Array. ...
- es6基础(4)--字符串扩展
//字符串扩展 { console.log('a','\u0061'); console.log('s','\u20BB7');//超过了0xffff console.log('s','\u{20BB ...
- ES6学习之正则扩展
RegExp正则函数 var reg = new RegExp("abc","igm"); //等价于 var reg = new RegExp(/abc/ig ...
- es6基础(7)--函数扩展
{ //有默认值的后面如果有参数必须要有默认值 function test(x,y="world"){ console.log(x,y) } test('hello');//hel ...
- es6基础(5)--数值扩展
{ //Number.isFinite数字是有尽的 console.log(Number.isFinite(15));//true console.log(Number.isFinite(NaN)); ...
- ES6基础-ES6的扩展
进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展. 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符 ...
- .NET正则基础——.NET正则类及方法应用
1 概述 初学正则时,对于Regex类不熟悉,遇到问题不知道该用哪种方法解决,本文结合一些正则应用的典型应用场景,介绍一下Regex类的基本应用.这里重点进行.NET类的介绍,对于正则的 ...
随机推荐
- Centos6 rpm 安装mysql5.5(转)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/macfac/article/details/51868712 0. 到官网下载好,想要安装的rpm包 ...
- ubuntu下pycharm调用Hanlp实践分享
前几天看了大快的举办的大数据论坛峰会的现场直播,惊喜的是hanlp2.0版本发布.Hanlp2.0版本将会支持任意多的语种,感觉还是挺好的!不过更多关于hanlp2.0的信息,可能还需要过一段时间才能 ...
- 使用php生成数字、字母组合验证码
项目中经常会遇到一些登陆验证,支付验证等等一系列安全验证的策略.实现方法多种多样,下面就来讲解下如何用php生成简单的文字+数字组合的验证码: 所用语言php,gd库 原理解释: a>实质上是在 ...
- WCF 基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。
详细错误信息: System.ServiceModel.CommunicationException: 接收对 http://localhost:48655/XXXXXX.svc 的 HTTP 响应时 ...
- windows安装mysql数据库并修改密码
1.下载 MySQL Community Server https://dev.mysql.com/downloads/mysql/ 2.解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件 ...
- Python单元测试框架之pytest 2 -- 生成测试报告
From: https://www.cnblogs.com/fnng/p/4768239.html Python单元测试框架之pytest -- 生成测试报告 2015-08-29 00:40 by ...
- Java多线程编程——并发编程原理(分布式环境中并发问题)
在分布式环境中,处理并发问题就没办法通过操作系统和JVM的工具来解决,那么在分布式环境中,可以采取一下策略和方式来处理: 避免并发 时间戳 串行化 数据库 行锁 统一触发途径 避免并发 在分布式环境中 ...
- Boost--variant (C++中的union)
union联合体类型的问题 只能用于内部类型,这使得union在C++中几乎没有用 所以boost提供了variant,相当于是C++中的union #include "boost/vari ...
- Ubuntu 14.10 下Hadoop HttpFS 配置
因为hadoop集群中需要配置一个图形化管理数据的截面,后来找到HUE,那么在配置HUE的过程中,发现需要配置httpfs,因为配置了httpfs,hue才能去操作hdfs中的数据. HttpFs能干 ...
- hadoop-n.x.y-src.tar.gz 、hadoop-n.x.y-src.tar.gz.asc 、hadoop-n.x.y-src.tar.gz.md5 、hadoop-n.x.y-src.tar.gz.mds是什么?
不多说,直接上干货! 我这里,以hadoop-2.6.0为例. hadoop-n.x.y.tar.gz.mds,此mds文件是为了检验在下载和移动文件过程中文件的完整性. 通过验证文件的md5值去检验 ...