美文网首页
ES6的一些笔记(五)

ES6的一些笔记(五)

作者: 曾迦 | 来源:发表于2017-02-14 05:32 被阅读20次

正则表达式

与以前相比的一些修改


new RegExp(/xxx/ , y);
var reg = new RegExp(/abc/ig, 'i');
console.log(reg.test('jsabc')); //true
console.log(reg.test('jasbc')); // false
新增 Symbol下的4种方法

查询方法[Symbol.match]匹配字符串 如果没有找到返回null,找到返回一个集合,第一个参数是的内容,第二个是找到的下标,第三个是全部的内容

var reg = new RegExp(/abc/ig, 'i');
console.log(reg[Symbol.match]('bcd'));   // null
console.log(reg[Symbol.match]('dabcd')); // ["abc", index: 1, input: "dabcd"]

替换方法[Symbol.replace]匹配字符串 替换内容,替换字符串中第一处匹配的地方,第一个参数是要替换的字符串,第二个参数是要替换的内容。找到的话替换

var reg = new RegExp(/abc/ig, 'i');
console.log(reg[Symbol.replace]('bcd','js'));  // bcd
console.log(reg[Symbol.replace]('dabcdabc','js')); // djsdabc

搜索[Symbol.search]匹配字符串 返回下标,搜索匹配字符串,如果找到就返回找到的下标,没找到返回-1

var reg = new RegExp(/abc/ig, 'i');
console.log(reg[Symbol.search]('bcd'));    //  -1
console.log(reg[Symbol.search]('dabcdabc')); // 1

切割[Symbol.split]匹配字符串 找到所有相关匹配的字符切割后返回数组,将整个字符串切割

var reg = new RegExp(/abc/ig, 'i');
console.log(reg[Symbol.split]    // ["bcd"] ('bcd'));
console.log(reg[Symbol.split]('dabcdaca')); // ["d", "daca"]
u修饰符

Unicode模式 处理大于\uFFFF的Unicode字符

y修饰符

粘连修饰符的意思就是说当一次匹配完成后第二次匹配时相配的字符必须在首位在能匹配成功,不然就返回null。
如下面的例子,str第一次匹配成功后下标移动到第3个也就a的地方,再次匹配成功,但是str2的时候第三个变为了-这时在匹配abc就匹配不上了提现了粘连的特性。

var str = 'abcabc';
var str2 = 'abc-abc';
var reg = new RegExp(/abc/,'y'`);
console.log(reg.exec(str))    // ["abc", index: 0, input: "abcabc"]
console.log(reg.exec(str))   // ["abc", index: 3, input: "abcabc"]
console.log(reg.exec(str2)) // ["abc", index: 0, input: "abc-abc"]
console.log(reg.exec(str2)) // null
sticky属性

表示是否设置了y修饰符。

var str = 'abcabc';
var str2 = 'abc-abc';
var reg = new RegExp(/abc/,'y');
console.log(reg.sticky);   // true
flags属性

返回的是修饰符。

var str = 'abcabc';
var str2 = 'abc-abc';
var reg = new RegExp(/abc/,'y');
console.log(reg.flags);   // y

相关文章

  • ES6的一些笔记(五)

    正则表达式 与以前相比的一些修改 new RegExp(/xxx/ , y); 新增 Symbol下的4种方法 查...

  • Ant Design Pro的知识储备

    Less 笔记 Less 官方文档 ReactJs笔记 ReactJs官方文档 ES6笔记 ES6文档 dvaJs...

  • ES6从入门到...

    项目中基本上用的都是Es6看阮一峰大神的ECMAScript 6 入门整理一些学习笔记 let ES6 新增了le...

  • ES6 学习笔记(二)

    ES6 学习笔记,如有错误,欢迎指正。 笔记只记录了一些个人认为需要记住的知识点。 参考:ECMAScript 6...

  • [总结]ES6 Array

    学习es6时做得小笔记

  • 6 【单向链表】单向链表

    昨天写链表出现了一些问题,而且现有教材有些代码陈旧,没有使用ES6语法,于是啃了一天的ES6,笔记还在整理,整理好...

  • ES6函数扩展

    本文只是学习es6的一些简单笔记,详情请看阮一峰的es6入门。 关于函数参数的默认值 什么时候需要为函数参数设置默...

  • ES6 学习笔记(一)

    ES6 学习笔记,如有错误,欢迎指正。 笔记只记录了一些个人认为需要记住的知识点,其他的可以参考文末的网站。 le...

  • ES6_note

    ES6笔记 es6 - 解构 数组的 解构赋值 let [a, b, c] = [1, 2, 3]; 这种写法属于...

  • Node.js笔记七:es6

    Node.js笔记七:es6 es6是javascript的新一代语法规范,现在很多新的库都是基于新的es6语法规...

网友评论

      本文标题:ES6的一些笔记(五)

      本文链接:https://www.haomeiwen.com/subject/rugkmttx.html