浅拷贝:拷贝就是复制,就相当于把一个对象中所有的内容,直接复制一份,或者是将这个对象的地址给另一个对象,他们的指向是相同,两个对象之间有共同的属性和方法
函数封装:浅拷贝,把一个对象中的属性全部复制到另一个对象中
深拷贝:拷贝还是复制的意思,深,把对象中所有的属性和方法,一个一个的找到,并且在另一个对象中开辟相应的空间,一个一个的存储到另一个对象中【深拷贝:浅拷贝+递归来实现】
正则表达式:也叫规则表达式,按照一定的规矩组成一个表达式,这个表达式的作用主要是匹配字符串的
正则表达式的组成:由元字符或者限定符组成的一个式子【作用:匹配字符串】
写正则表达式:根据字符串来写正则表达式进行匹配【①找规律,②不要追求完美】
创建正则表达式对象:/元字符或者限定符/
1. 通过构造函数创建对象
2. 字面量方式创建对象
①元字符:
. 表示除了换行符以外的任意一个字符 "fd大三的2323,、,、"
[] 表示范围:
[0-9]:表示0到9之间任意一个数字 "2324"
[a-z]:表示a到z之间任意一个字母
[A-Z]:表示A到Z之间的任意一个字母
[a-zA-Z]:表示所有的字母中的任意一个
[0-9a-zA-z]:表示所有的数字和字母中的任意一个 "dfd3434"
[3-6]:表示3到6之间任意一个数字
另一个含义:把正则表达式中的元字符的意义取消掉
[.]:表示一个.
| 或者
[0-9]|[a-z]:要么是一个数字,要么是一个小写的字母
() 分组 一般用于提升优先级
[0-9]|([a-z])|[A-Z]
([0-9])|([1-7])|([a-z]):三个组,从左往右开始计算
②元字符,或者叫限定符
* 表示前面的表达式出现了0次或者多次
[a-z][0-9]* 任意的一个小写字母,后面要么是0个数字,要么是多个数字
+ 表示前面的表达式出现了1次或者多次
[a-z][0-9]+ 任意一个小写字母,后面至少出现一个数字
? 表示前面的表达式出现0次到1次,最少出现0次,最多出现1次,另一个含义:阻止贪婪模式
[9][a-z]? "349aaa" "9"
③限定符:限定表达式出现的次数
{0,}: 表示前面表达式出现了0次或者多次 和 * 一样
{1,}: 表示前面的表达式出现了1次或者多次 和 + 一样 [a-z][3-5]{1,} "fsfs344777"
{0,1}:表示前面的表达式出现了0次或者1次 和? 一样
{1,9}:表示前面的表达式出现了1次至9次
{4}:前面的表达式必须出现4次
{,10}-----错误的,不能这样写
^ 表示以什么开始,或者取反
^[0-9]:表示以数字开头
^[a-z]:表示以小写字母开头
[^a-z]:表示非小写字母
[^0-9a-zA-Z]:非数字小写字母大写字母
$ 表示以什么结束
[0-9][a-z]$:表示一定要以小写字母结尾 "8080dfdf"
^[0-9][a-z]相当于严格模式 "3f343e"
\d :任意一个数字 [0-9]
\D :任意非数字 字母,特殊符号
\s :空白符
\S :非空白符
\w :非特殊符号 字母数字下划线[a-zA-Z0-9_]
\W :特殊符号 !$#%$%&^