美文网首页前端
ES6 - 字符串与正则的扩展

ES6 - 字符串与正则的扩展

作者: 前白 | 来源:发表于2019-08-06 09:41 被阅读11次

1、字符串的扩展

  • Unicode - \u0000 ~ \uFFFF

        '\{u0061}'
        // a 
        
        '\uD842\uDfB7'
        "\u{20BB7}"
        // "𠮷" 
    
  • 字符串遍历器 - 识别大于0xFFFF

        let text2 = String.fromCodePoint(0x20BB7);
        
        for(let i = 0;i < text2.length;i++){
            console.log(text2[i]);
        }
        // �
        // � 
        
        for (let i of text){
            console.log(i);
        }
        // "𠮷"
    
  • 模板字符串 - 保留所有空格与换行

        const getName = () => 'Iven';
        const myName = 'Eric';
        `\`Hello\` ${getName()},I am ${myName}`
        
        //"`Hello` Iven,I am Eric"
    
  • 标签模板

        alert`111`;
        // alert(111);
        
        func`This ${ a + b} is ${ a * b}`;
        // func(['This', 'is', ''],a + b, a * b);
        
        <div>
          <span>1111</span>
        </div>
    
  • 新增方法

    • fromCodePoint - 从Unicode码点返回对应字符
          String.fromCodePoint(0x78, 0x1f680, 0x79);
          // x🚀y
      
    • String.raw - 返回一个包括\在内的字符串
          String.raw`\`Hello\` I am`;
          // \`Hello\` I am
          
          `\`Hello\` I am`
          // `Hello` I am
          
          String.raw({ raw: 'test'}, 1,2,3,4);
          String.raw({ raw: ['t','e','s','t']}, 1,2,3,4);
          // t1e2s3t
      
    • codePointAt - 返回一个字符的码点(10进制)
          let s = '𠮷a';
          s.codePointAt(0).toString(16);
          s.codePointAt(2).toString(16);
          // 61
      
    • includes - 是否包含参数字符串
          const string = 'Hello world!';
          string.includes('wo');
          // true
      
    • startsWith - 是否以某一个字符串开头
          const string = 'Hello world';
          string.includes('He');
          // true
      
    • endsWith - 是否以某一个字符串结尾
          const string = 'Hello world';
          string.includes('world');
          // true
      
    • repeat - 将原字符串重复n次
          `Hello`.repeat(2.9);
          // HelloHello
          
          `Hello`.repeat(-0.9);
          // ""
      
    • padStart - 字符串补全长度
          `hello`.padStart(10,'0123456789');
          // 01234hello
      
    • padEnd
          `hello`.padEnd(10,'0123456789');
          // hello01234
      
    • trimStart、trimEnd - 去除空格,换行,tab
          '  abc  '.trimStart();
          // abc 
      
    • matchAll - 返回正则表达式所有匹配
          for(s of 'abcabcabc'.matchAll('ab')) {
              console.log(s)
          }
      

2、正则的扩展

  • RegExp - 指定修饰符
        new RegExp(/abc/ig,'i');
        // /abc/i
    
  • 字符串正则 - 内部改为调用RegExp方法
        RegExp.prototype[Symbol.match];
        RegExp.prototype[Symbol.replace];
        RegExp.prototype[Symbol.search];
        RegExp.prototype[Symbol.split];
    
  • y修饰符 - 全局粘连匹配
        const s = 'abcdabcdabc';
        const reg1 = new RegExp('abc', 'g');
        const reg2 = new RegExp('abc', 'y');
        
        reg1.exec(s);
        reg2.exec(s);
    
  • sticky - 是否使用了y修饰符
        const reg = /hello\d/y;
        reg.sticky;
        // true
    
  • flags - 返回正则表达式的修饰符
        /abc/ig.flags
        // gi
    
  • s - 匹配一切字符(.不能匹配回车、换行等行终止符)
        /week.month/s.test('week\nbar');
        // false
    
  • 组别名(当我们使用正则匹配时,可以把它赋给一个变量)
        // 共同定义
        const RE_DATE = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
        const matchObj = RE_DATE.exec('1999-12-31');
        
        const year = matchObj.groups.year;
        matchObj[1];
        // 1999 
        
        const month = matchObj.groups.month;
        matchObj[2];
        // 12 
        
        const day = matchObj.groups.day;
        matchObj[3];
        // 31 
        
        let { groups: { one, two } } = /^(?<one>.*):(?<two>.*)$/u.exec('week:month');
    
  • matchAll - 返回正则表达式所有匹配 - 迭代器
        for(s of 'abcabcabc'.matchAll('ab')) {
            console.log(s)
        }
    

相关文章

  • ES6扩展归纳

    ES6扩展归纳 介绍ES6相比与ES5在原有对象上的扩展,包括字符串、正则、数值、函数、数组、对象等扩展,本文是阮...

  • ECMAScript6--4.正则扩展

    1.正则新增特性 构造函数的变化 正则方法的扩展字符串处理的一些正则方法,在ES6中已经是调用了正则对象的方法; ...

  • JavaScript ES6 - 正则表达式扩展

    正则扩展: 主要来与 ES5 做一个对比 (也就是语法的扩展) 1. ES6 正则新特性: 如图所示: 1. 正则...

  • ES6扩展

    字符串扩展 正则扩展 数值扩展 函数扩展 对象扩展 数组扩展 字符串扩展 模版字符串 部分新的方法 padStar...

  • ES6扩展

    字符串的扩展正则的扩展数值的扩展数组的扩展函数的扩展对象的扩展

  • ES6-02 字符串与正则表达式

    ES6学习笔记-字符串与正则表达式 JS字符串编码 在ES6之前,JS的字符串以16位字符编码(UCS-2)为基础...

  • ES6 - 字符串与正则的扩展

    1、字符串的扩展 Unicode - \u0000 ~ \uFFFF '\{u0061}' // a ...

  • 2018-01-03

    ES6(昨天今天的1-9章,第一遍) babel转码 let和const 解构 变量的解构 字符串的扩展 正则的扩...

  • es6的数值,函数,字符串扩展

    一、es6的数值扩展 二、es6的函数扩展 代码效果:对象解构在函数中的应用 三、es6字符串扩展 常用方法 代码...

  • Vue项目开发与规范--es6语法规范篇

    目录 简介 let const 解构赋值 正则的扩展 字符串的扩展 数值的扩展 数组的扩展 函数的扩展 对象的扩展...

网友评论

    本文标题:ES6 - 字符串与正则的扩展

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