[TOC]
## 1.備選字符集:規定某一位字符的備選字符列表
```
特點:必須且只能多選一
eg:上天,上海
上[天海]
將字符串中的上海,上天兩個字符換成**
```
```
var str ="上海,上天,上去,上哪"
var reg =/上[海天]/g;
console.log(str.replace(reg,"**"));
```
### 1.1備選字符的unicode號連續
```
//一個數字
[0-9]//一個小寫字母
[a-z]//一個大寫字母
[A-Z]//一個數字或字母
[0-9a-zA-Z]
```
## 2.預定義字符集:針對常用的備選字符集提供的簡化符號
```
//一位數字
[0-9] --> \d
//一位數字字母或下劃線
[0-9a-zA-Z_] -->\w
\s //1位空字符:空格,tab,換行
. // 除換行外,其余所有字符
```
## 3.量詞:定字符集出現的次數
> 特點:默認一個量詞,僅修飾左側緊鄰的字符集
### 3.1 確定數量:
```
{m,n} -->至少m個,最多n個
{m,} -->m個以上
{m} -->必須m個
```
### 3.2 不確定數量
```
? -->一個或0個
+ -->1個以上
* -->多個或沒有
```
## 4.test() 方法用于檢測正則表達式是否匹配字符串的一部分,返回boolean值
語法reg.test(str); 返回boolean值
```
var reg =/\d{5,9}/;
var str = "323232hell";
console.log(reg.test(str)); //true
```
## 5.貪婪模式和懶惰模式
### 貪婪模式
```
var str = "123456abc";
var reg = /\d{3,6}/;
console.log(str.replace(reg,"*"))
```
### 懶惰模式?
```
var str = "123456abc";
var reg = /\d{3,6}?/;
console.log(str.replace(reg,"*"))
```
## 6. 選擇和分組
```
//選擇
| 讀作"或"
//分組
()
轉義字符\
```
```
var a ="hello\"";
console.log(a); \\hello"
手機號:+86或0086 可有可無,最多1個
空字符 不限制個數
1
3,4,5,7,8 選其一
9位數字
(\+86|0086)?\s*1[34578]\d{9}
```
## 7. 指定匹配位置
開頭和結尾:^開頭的xxx;$結尾的xxx
何時使用:僅匹配開頭的規則和結尾的規則時使用
固定搭配:^正則表達式$-->表示從頭到尾完整匹配
開頭和結尾只出現正則表達式的內容
何時使用:只要驗證時,必須前加^,后加$!
```
//匹配字符串開頭的所有空字符
^\s+
//匹配字符串結尾的所有空字符
\s+$
var a =" hello";
var reg =/^\s+/;
var str =a.replace(reg,"");
console.log(str);
```
## 8. 排除
```
//除了abc
[^abc]
```
- 效果實例
- 1.點擊增加高度
- 2.tab頁面切換
- 3. 列表切換
- 4. 隔行變色
- 5. swiper 輪播
- 6.vue
- 7.定時器
- 8. 向表格中添加數據
- 9 瀑布流
- 1.JavaScript基礎
- 1. 變量
- 2. 調試
- 3.數據類型
- 4.轉換
- 5.控制語句
- 6.運算
- 7. this
- 8 JSON對象和javascript對象的相互轉換
- 2.JavaScript的控制語句
- 1. 基本控制語句
- 2.節點
- 2.1DOM補充
- 3. 函數
- js的模塊化如何解決
- 不知道有什么用的
- 4.數組
- 5. String
- 補充
- 6.Ajax
- 1. 原生Ajax
- 2. HTTP/get/post
- 3.jQuery-Ajax
- 4.跨域
- 5.axios
- 6.封裝
- Ajax效果
- ajax補充
- 7. 正則
- 1.創建正則表達式
- 2. 正則的api
- 3.正則語法
- 4.例子
- 量詞
- 8.面向對象
- 1.原型
- ES6
- 模塊化
- 1.回調地獄
- 什么是回調地獄
- 簡單封裝
- promise解決回調地獄
- generator解決回調地獄
- async解決回調地獄
- 2.封裝
- Ajax,promise
- JavaScript難點
- 1. 閉包/作用域
- 2.原型鏈
- 3. 兼容性
- 適配
- JavaScript小效果
- 字符串截取