SOURCE

console 命令行工具 X clear

                    
>
console
let str1 = 'abcabdt';

// 匹配字符串中所有'ab'实例
let pattern1 = /ab/g;
console.log(pattern1.test(str1)); // true

// 匹配第一个‘bat’或‘cat’,不区分大小写
let pattern2 = /[bc]at/i;

// 匹配所有已'at'结尾的3个字符串组合,不区分大小写
let pattern3 = /.at/gi;

//匹配第一个'[bc]at',不区分大小写
let pattern4 = /\[bc]at/i;

//匹配所有以'.at',不区分大小写
let pattern5 = /\.at/gi;

// 与pattern2 相同,RegExp构造函数创建
let re1 = new RegExp('[bc]at', 'i');

/**
 * 字符串对象正则方法
 */
let str1 = 'abc'.replace(/b/gi, '2');
// console.log('str1:' + str1); // str1:a2c 

let str2 = 'abc'.replace(/(b)/gi, '$1,');
// console.log('str2:' + str2);

let str3 = 'abc12345';
str3.replace(/a(b)c1(\d)3/g, function (val, $1, $2, idx, s) {
    // console.log(val, $1, $2, idx, s);
});

let result1 = 'a,b/c'.split(/[,/]/);
console.log(result1);
'a,b/c'.split(/[,/]/, 1);

/*
 * RegExp 的exec方法
 */
// 包含两个捕获组,最内层的为'and baby', 包含它的捕获组匹配'and dad'或者'and dad and baby',
// 当把字符串传入后,发现一个匹配项,因为整个字符本身与模式匹配,所以返回数组matches的index属性值为0
// 数组中第一项是匹配的整个字符串,第二项包含与第一个捕获组匹配的内容,第三项包含与第二个捕获组匹配的内容
// 
let execStr1 = 'mom and dad and baby';
let pattern6 = /mom( and dad( and baby )?)?/gi;
let matches6 = pattern6.exec(execStr1);
alert(matches6.index); // 0
alert(matches6.input); // 'mom and dad and baby'
alert(matches6[0]); // 'mom and dad and baby'
alert(mathes6[1]); // ' and dad and baby'
alert(mathes6[2]); // ' and baby'
<div id="show"></div>