zoukankan      html  css  js  c++  java
  • JavaScript Patterns 3.6 Regular Expression Literal

    1. Using the new RegExp() constructor

    // constructor
    
    var re = new RegExp("\\", "gm");

    2. Using the regular expression literal

    // regular expression literal
    
    var re = /\/gm; 

    when using the RegExp()constructor, you also need to escape quotes and often you need to double-escape backslashes, as shown in the preceding snippet.

    Regular Expression Literal Syntax

    • g—Global matching

    • m—Multiline

    • i—Case-insensitive matching 

    var no_letters = "abc123XYZ".replace(/[a-z]/gi, "");
    
    console.log(no_letters); // 123 

    Another distinction between the regular expression literal and the constructor is that the literal creates an object only once during parse time.

    function getRE() {
    
        var re = /[a-z]/;
    
        re.foo = "bar";
    
        return re;
    
    }
    
    var reg = getRE(),
    
           re2 = getRE();
    
    console.log(reg === re2); // true 
    // Kaibo(20140602): For now this result should be false in ES5(Tested in Chrome)
    reg.foo = "baz"; console.log(re2.foo); // "baz" 

    Note

    1. This behavior has changed in ES5 and the literal also creates new objects.  The behavior has also been corrected in many browser environments, so it’s not to be relied on.
    2. And one last note that calling RegExp() without new(as a function, not as a constructor) behaves the same as with new.
  • 相关阅读:
    HTML5学习
    Python随手记
    Python学习之warn()函数
    Redis学习
    多线程--wait()和notify(),Thread中的等待和唤醒方法
    Interrupt中断线程注意点
    Thread中yield方法
    mysql创建唯一索引,避免数据重复插入
    Jquery自动补全插件的使用
    linux ssh免密登陆远程服务器
  • 原文地址:https://www.cnblogs.com/haokaibo/p/Regular-Expression-Literal.html
Copyright © 2011-2022 走看看