正则表达式

一个小案例:为何要学习正则

{
    let str = "asldkfjal123s23sdfs11";
    let arr = [];
    // 找到所有的数字,并且放在一个数组里面[123,23,11];
    {
        function getNumber(str) {
            let arr = [];
            let temp = "";
            for (let i = 0; i < str.length; i++) {
                if (!isNaN(str[i])) {
                    temp += str[i];
                } else {
                    if (temp !== "")
                        arr.push(parseInt(temp));
                    temp = "";
                }
            }
            if (temp !== "") {
                arr.push(parseInt(temp));
                temp = "";
            }
            return arr;
        }
        // console.log(getNumber(str));
    }
    {
        // 正则匹配如下:
        let reg = /\d+/g;
        let arr = str.match(reg);
        // console.log(arr);
    }
}

正则表达式的两种创建方式

{
    /* 
        正则的创建
    */
    // 两种创建方式
    {
        // 1.字面量创建
        // 两个杠直线就是 正则表达式里面的内容;
        // /g 全局匹配,找到结果之后继续查找 -> 默认的reg是查找到一个就停止查找;
        // + 一次或者多次 -> 1次以上
        {
            // \d 模糊匹配
            let str = "abc135778sdsdf31";
            let reg = /\d+/g;
            let res = str.match(reg);
            // console.log(res);
        }
        {
            // 精确匹配 : 一般情况下,精确匹配是比较少的..
            let str = "abc135778sdsdf31";
            let reg = /abc/g;
            // 注: abc只能是字符串 在字面量中不能是变量
            let res = str.match(reg);
            // console.log(res);
        }
    }
    {
        // 2.构造函数创建
        // 两个参数 1.正则表达式内容 2.修饰符
        // 1.带\的需要多层转义 -> \d \\d
        {
            // 模糊匹配
            let str = "abc135778sdsdf31";
            let reg = new RegExp("\\d+", "g");
            let res = str.match(reg);
            // console.log(res);
        }
        {
            // 精确匹配
            let str = "abc135778sdsdf31";
            let reg = new RegExp("abc", "g");
            let res = str.match(reg);
            // console.log(res);
        }
        {
            // 变量匹配
            let str = "abc135778sdsdf31";
            let abc = "1357"
            let reg = new RegExp(abc, "g");
            let res = str.match(reg);
            // console.log(res);
        }
    }
}