20200915冯佳丽

学习日志

正则表达式

常用字符集

预定义字符集

\d

​ 匹配一位数字,等效于 [0-9]
​ 实例:手机号规则简写
​ 结果:1[3-8]\d\d\d\d\d\d\d\d\d

\w

​ 匹配一位数字、字母或_,等效于 [A-Za-z0-9_]

\s

​ 匹配一位空字符,空格,制表符Tab等空白字符
​ 实例:匹配一句英文中的每个空格
​ 结果:\s

.

​ 通配符,匹配除换行符 \n 之外的任何单字符,换行符平时看不见,但却是存在的

非打印字符

\b

​ 匹配单词的开始或结束

\n

​ 匹配一个换行符。等价于 \x0a 和 \cJ

\s

​ 匹配任何空白字符,包括空格、制表符、换页符等等
​ 注意 Unicode 正则表达式会匹配全角空格符

\S

​ 匹配任何非空白字符

\t

​ 匹配一个制表符tab

\f

​ 匹配一个换页符

\v

​ 匹配一个垂直制表符

\r

​ 匹配一个回车符

数量词

有明确数量边界

字符集{n} 字符集{n,m} 字符集{n,}

没有明确边界
字符集?

​ 可有可无,最多一次,相当于{0,1}
​ \d?

字符集*

​ 可有可无,多了不限,相当于{0,}
​ \d*

字符集+

​ 至少一次,多了不限。相当于{1,}
​ \d+
​ \s+
​ 匹配字符串中的一组连续空字符

选择和分组

选择

子规则1|子规则2 | 选择符只分左右,不考虑单个字符

RegExp

创建RegExp:
1、字面量

var reg=/正则表达式/ig var reg=new RegExp("\d{11}","ig");

2、new

var reg=new RegExp("正则表达式","ig"); var reg=new RegExp("\d{11}","ig");

RegExp API

  1. 查找关键词

​ var arr=reg.exec(str)

  1. 验证

​ test()

  1. 重新编译正则表达式

    compile()

面向对象

三大特征:

封装、继承、多态

创建一个单独的对象

1、使用对象字面量

语法:

var obj={
属性名1 : 属性值1,
属性名2 : 属性值2,
... ,
方法名(){
this.属性名
}
}

案例:

        var zs={
            name:"张三",
            age:18,
            introduce(){
                console.log(`我叫${this.name},我的年龄是${this.age}`)
            }
        }
        console.log(zs.introduce())
2、使用内置构造函数
创建一个空对象 {}

var obj=new Object();

为新对象添加新属性

(1)obj.属性名=属性值

(2)obj.方法名=function(){
this.属性名
}

        var zs=new Object();
        zs.name="张三";
        zs.age="18";
        var sex=Math.floor(Math.random()*2);
        if(sex===1){
            zs.sex="男"
        }else{
            zs.sex="女"
        }
        zs.say=function(){
            console.log(`
            我叫${this.name},年龄${this.age}
            `)
        }
        console.log(zs.say())

克隆实例:

        //***** 克隆对象****
        // 克隆
        var zs={
            name:"张三",
            age:18,
            height:188,
            say(){
                console.log(this.name)
            }
        }
        //克隆体
        var zsClone={}
        //开始克隆
        for(var key in zs){
            zsClone[key]=zs[key]
        }
        console.log(zsClone)
        console.log(zs===zsClone)//false
        console.log(zs.say===zsClone.say)//true

构造函数

使用构造函数

优点:点代码重用

1、定义构造函数

function 类型名(形参1,形参2,形参3...){
this.属性名1=形参1;
this.属性名2=形参2;
this.属性名3=形参3;
/*
// JS中强烈不推荐将方法定义在构造函数中
this.方法名=function(){
this.属性名
}
*/
}

2、使用new调用构造函数

var obj=new 类型名(属性值1,属性值2,...)

实例:

        // 练习:使用构造函数,定义一个汽车的构造函数
        function Car(color,size,type){
            this.color=color;
            this.size=size;
            this.type=type;
            this.run=function(){
                console.log("正在运行...")
            }
        }
        // 原型对象
        // Car.prototype.run=function(){
        //  console.log("正在运行...")
        // }
        var car=new Car("红","大","CS7103")
        console.log(car)
        console.log(car.color)
        console.log(car.run())

学习感受

练习加理解!

评论