RegExp 内置的构造函数,用于创建正则表达式。

    1. <script>
    2. // 构造函数创建正则
    3. let reg = new RegExp('\\d', 'i');
    4. let reg = new RegExp(/\d/, 'i')
    5. // 字面量方式创建正则
    6. // let reg = /(\d)/i;
    7. reg.exec('123');
    8. </script>
    1. // 匹配连续的4个数字
    2. // let reg = /\d\d\d\d/g
    3. // let reg = /\d{4}/g
    4. // let reg = /[0-9]{4}/g
    5. // 匹配连续的4个数字,要求每组数字 第1个数字和第2个数字相同;第3个数字和第4个数字相同
    6. // let str = '0011 2233 4545 6776 8998'
    7. // let reg = /(\d)\1(\d)\2/g
    8. // (\d) 使用小括号,表示 捕获 \d 匹配的那个值
    9. // \1 表示匹配的值,必须和第1个小括号匹配的值相同
    10. // \2 表示匹配的值,必须和第2个小括号匹配的值相同
    11. // console.log(str.match(reg))
    12. // 匹配连续的4个数字,要求14位相同、23位相同
    13. // let reg = /(\d)(\d)\2\1/g
    14. // console.log(str.match(reg))
    15. // 匹配连续的4个数字,要求13位相同、24位相同
    16. // let reg = /(\d)(\d)\1\2/g
    17. // console.log(str.match(reg))
    18. let str = 'ES6 and H5'
    19. // ES666 and H555
    20. let result = str.replace(/(\d)/g, '$1$1$1')
    21. console.log(result)

    总结:

    1. 推荐使用字面量定义正则表达式,而不是 RegExp 构造函数
    2. RegExp 静态属性 $1、$2、$3、… 获取正则分组单元

    补充:当使用构造函数创建正则时有两种写法:

    1. <script>
    2. // 使用 // 定义正则
    3. let reg = new RegExp(/\d/);
    4. // 或者使用 '' 定义正则
    5. // 如果使用引号定义正则时,\d、\s、\w
    6. 需要多添加一个 \
    7. let reg1 = new RegExp('\\d');
    8. </script>