美文网首页
正则扩展

正则扩展

作者: bjhu电net | 来源:发表于2017-09-19 13:00 被阅读0次

正则新特性

构造函数的变化,正则方法的扩展,u修饰符,y修饰符,s修饰符


es5正则的写法

{
    //es5声明正则
    let regex=new RegExp('xyz','i')//i忽略大小写
    let regex2=new RegExp(/xyz/i);
    console.log(regex.test('xyz123'),regex2.test('456xyz'))
}

es6新增

{
    //es6声明正则(增加)
    let regex3=new RegExp(/xyz/ig,'i');
    console.log(regex3.flags);
    //es6中允许第一个是正则表达式的参数,第二个参数会覆盖掉ig修饰符!
    //flags用来获取正则表达式的修饰符
}

y修饰符

{
    //修饰符g和y都是全局匹配,不同点是:g修饰符会继续匹配,y修饰符会先继续匹配_符号
    let s='bbb_bb_b';
    let a1=/b+/g;
    let a2=/b+/y;
    console.log('one',a1.exec(s),a2.exec(s))
    console.log('two',a1.exec(s),a2.exec(s))
    //one ["bbb", index: 0, input: "bbb_bb_b"] ["bbb", index: 0, input: "bbb_bb_b"]
    //two ["bb", index: 4, input: "bbb_bb_b"] null
     console.log(a1.sticky,a2.sticky);
    //sticky判断是否开启了y修饰符
    // false true
}

u修饰符

{
    //u是处理unicode字符时候用的
    console.log('u-1',/^\uD83D/.test('\uD83D\uDC2A'));
    //u-1 true
    console.log('u-2',/^\uD83D/u.test('\uD83D\uDC2A'));
    //u-2 false
    //第一个四个字节当成了两个字母/字符,u修饰符会把四个字节当成一个字符
    console.log(/\u{61}/.test('a'))
    console.log(/\u{61}/u.test('a'))
    //false true
    //{}包起来会当作成为unicode字符,不加u修饰符的话不会被识别
   console.log(`\u{20BB7}`)
    //𠮷
    let s='𠮷';
    console.log('u',/^.$/.test(s))
    //false
    console.log('u',/^.$/u.test(s))
    //true
    console.log('test',/𠮷{2}/.test('𠮷𠮷'));
    //false
    console.log('test',/𠮷{2}/u.test('𠮷𠮷'));
    //true
}

如果字符串中有字符大于2个字节,一定要加上u修饰符才能被识别;正则中并不是匹配到所有的字符,小于2个字节的符号可以匹配到,其他的不能匹配,换行符,回车符,行分隔符以及段分隔符.都不能匹配到。可以用s修饰符。

相关文章

  • Linux grep、egrep使用命令详解

    grep egrep区别grep 默认不支持扩展 但可以通过-E 选择来支持扩展正则egrep 支持扩展正则 ...

  • ES6扩展

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

  • 三剑客_grep

    grep grep 相关参数 grep + 正则表达式(扩展正则)

  • linux正则表达式详解(二) -扩展正则表达式

    上一章我们主要探讨了通配符和基础正则表达式,这章重点探讨扩展正则表达式的应用。 基本正则表达式包含: 扩展正则添加...

  • JavaScript ES6 - 正则表达式扩展

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

  • ES6学习 第五章 正则的扩展

    前言 本章介绍正则的扩展。有些不常用的知识了解即可。本章原文链接:正则的扩展[https://es6.ruanyi...

  • 正则扩展

    修饰符i:不区分大小写es5中,有两种写法:1.两个参数 2.一个参数 结果:i y修饰符## y和g的相同点:都...

  • 正则扩展

    正则新特性 构造函数的变化,正则方法的扩展,u修饰符,y修饰符,s修饰符 es5正则的写法 es6新增 y修饰符 ...

  • 正则扩展

    RegExp 构造函数 在 ES5 中,RegExp构造函数的参数有两种情况。 第一种情况是,参数是字符串,这时第...

  • ES6基础-ES6的扩展

    进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, A...

网友评论

      本文标题:正则扩展

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