# 正則表達式
[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
- 技術選型
- 模塊化
- 框架
- 開發實踐
- 系統設計
- 系統實現
- 測試發布