javascript第十四天正则和闭包
正则和闭包
- 正则表达式/对象 RegExp regularExpress
(1) 定义:是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符,及这些特定字符的组合,组成一个‘规则字符串’,这个规则字符串用来表达对字符串的一种过滤逻辑
(2) 正则表达式的创建
① 实例创建 new RegExp(“abc”)
1) 写法:new RegExp(规则字符串,修饰符)
② 字面量创建 /规则字符串/修饰符
(3) 正则的修饰符
① i:ignore case
1) 添加i修饰符 就会 在正则检测字符串的时候 忽略大小写
② g:global
1) 添加g修饰符 就会执行 全局匹配 从字符串开头 匹配到结尾
(4) 正则的检索方式
① Test
1) 正则对象.test(要检索的字符串)
2) 得到的结果 是 一个布尔值 如果检索成功 就是true 如果失败 就是false
3) 一般用于做判断
② Exec
1) 正则对象.exec(要检索的字符串)
2) 得到的结果 如果成功 是一个伪数组 包含一些检索字符串的信息, 如果失败,得到的是null
③ Replace
1) 字符串.replace(正则表达式,用来替换的字符片段)
- 作用:使用正则 匹配字符串中的 字符部分 将匹配到的部分替换掉
④ Search
1) 字符串.search(正则表达式);
2) 作用:传入指定的字符片段或正则, 从而 获取 该字符片段(正则匹配到的字符片段)首次出现的下标 如果字符串中不包含执行字符片段 就返回-1
⑤ Match
1) 字符串.match(正则表达式)
2) 作用:和exec完全一样
⑥ Split
1) 字符串.split(/切割标识/)
2) 作用:使用正则表达式 匹配字符串 将匹配到的字符片段 作为切割标识 进行切割
(5) 正则元字符
① .
1) 在正则中 . 表达的意思是 处理换行符之外的任意字符
2) 换行符:\n
② [0-9]
1) 在正则中 [] 表达的意思是 在指定范围中即可
- 例如:[0-9] 所有的数字都可以成功匹配 [a-z] 匹配所有小写字母
- 范围可叠加 [0-9a-zA-Z]
③ [^0-9];
1) 在正则中 [^] 表示匹配在指定范围之外的字符
- 例如:[^0-9] 匹配所有非数字字符 [^a-z]匹配所有除了小写字母之外的字符
- 范围可叠加
④ \d
1) 表示 数字
⑤ \D
1) 表示 非数字
⑥ \w
1) 匹配 字母 _ 数字
2) 注意:不能匹配汉字
⑦ \W
1) 匹配的是 非 字母数字_ (只能匹配 特殊字符 和 汉字)
⑧ \s
1) 匹配 空格 及 空白字符(\n、\t....)
⑨ \S
1) 匹配非空格及空白字符
⑩ \b
1) 匹配单词的边界
11 \B
1) 匹配非单词边界
12 ^
1) /^abc/
2) 上述正则表达式 表达的意思 就是 要匹配的字符串 必须以abc开头
13 $
1) /abc$/
2) 表示 要匹配的字符串 必须以abc结尾
14 严格模式
1) /^xxxx$/
2) 表示 严格匹配正则的内容 被匹配的字符串必须和正则的内容完全一样 才可以匹配成功
(6) 正则的量词
① /x?/
1) ?表示重复次数为0或1次
② /x+/
1) +表示重复次数为至少1次
③ /x*/
1) *表示重复次数为任意多次
④ (xyz)?
⑤ /x{n}/
1) {n} 表示让x重复n次
⑥ /x{n,m}/
1) {n,m} 表示让x重复至少n次 至多m次
(7) 正则其他知识点
① 正则或运算
1) /a|b|c|d/
- 表示a、b、c、d都可以成功匹配
② 正则分组
1) /(xyz)(tfb)/
- 小括号 就是 用来 实现正则分组的
- 每一个小括号中的内容 就是一个 分组
2) 在使用exec检索正则的时候 会先检索整个正则 之后 再使用每一个分组, 依次进行检索,并得到每一个匹配的字符片段
3) 我们可以使用RegExp构造函数的 $1,$2.....这些属性表示每一个分组匹配到的字符片段, 但是前提条件必须是正则表达式事先被检索过
4) 在replace中 $1 $2.....可以直接表示每一个分组匹配的内容
③ 正则正向否定预查 费获取匹配
1) /(?!xxxx)yyyy/
2) 表示 要求正则中 后续的内容 不能是xxxx
3)
- 匿名函数
(1) 定义:没有名字的函数
(2) 写法:
① function(){函数体代码}
② 注意:匿名函数 不能直接声明 但如果作为回调函数 则没有问题
(3) 优势
① 可以最大限度节省内存
② 普通函数 在 函数声明之后 就会将函数数据存入内存的堆区中 占用内存,
③ 而匿名函数则会在函数调用的瞬间 将函数数据存入内存中 并在函数执行完之后 立即将内存中的匿名函数数据清除掉
- 闭包函数
(1) 定义:闭包就是能够读取其他函数内部变量的函数
(2) 闭包的写法定义:闭包就是 函数内部套函数 内层函数访问外层函数中的变量
(3) 闭包的优势:闭包中外层函数中声明的变量可以永久的存储在内存中,又能避免全局变量的污染
浙公网安备 33010602011771号