# 正则表达式
[toc]
## 创建表达式
- /pattern/attrs
- new RegExp(pattern,attrs)
## regexpObj.test(str)
- 测试正则表达式与指定字符串是否匹配
## 锚点
匹配一个位置
- `^`: 起始位置
- `$`: 结尾位置
- `\b`: 单词边界
## 字符类
匹配一类字符中的一个
- `[0-9]`: 一个数字
- `[a-z]`: 一个字母
- `.`: 任一字符(换行除外)
## 元字符
具有特殊意义的字符
- `^, $, \b`
- `\d`: [0-9]
- `\D`: `^\d`
- `\s`: 空白符
- `\S`: `^\s`
- `\w`: [z-Za-z0-9]
- `\W`: `^\W`
## 量词
- {m, n}: m到n次
- *:{0,}
- ?:{0,1}
- +:{1,}
## 转义符
需要匹配的字符是元字符
## 多选分支
`|`:或
## 捕获
- 保存匹配到的字符串,日后再用
- `()`: 捕获
- `(?:)`: 不捕获
- 使用:
- `$1`, `$2`, ...
- api参数或返回值
## str.match(regexp)
获取匹配的字符串
## str.replace(regexp/substr, replacement)
'the price is 5.'.replace(/(\d+)/, '$1.00')
## regexpObj.exec(str)
更强大的检索
- 更详尽的结果:index
- 过程的状态:lastIndex
- 页面制作
- HTML
- 标签
- css
- 选择器
- 文本
- 盒模型
- 背景
- 布局
- 变形
- 过渡和动画
- JavaScript程序设计
- 基础篇
- 基本语法
- 基本类型
- 运算符与表达式
- 语句
- 数值
- 字符串
- 对象
- 数组
- 函数
- Date
- RegExp
- JSON
- 进阶篇
- 类型进阶
- 函数进阶
- 原型
- 变量作用域
- 闭包
- 面向对象
- DOM编程艺术
- 基础篇
- 文档树
- 节点操作
- 属性操作
- 样式操作
- 事件
- 数据通信
- 数据存储
- 动画
- 音频与视频
- canvas
- BOM
- 表单操作
- 列表操作
- 实践篇
- 组件实践
- 页面架构
- CSS Reset
- 布局解决方案
- 居中布局
- 多列布局
- 全屏布局
- 响应式
- 页面优化
- 规范与模块化
- 规范
- 模块化
- 产品前端架构
- 协作流程
- WEB系统
- 角色定义
- 协作流程
- 职责说明
- 接口设计
- 接口规范
- 规范应用
- 本地开发
- 版本管理
- 分支模型
- git
- 技术选型
- 模块化
- 框架
- 开发实践
- 系统设计
- 系统实现
- 测试发布