[TOC]
# 1.备选字符集:规定某一位字符的备选字符列表
> 特点:多选一
```
var reg = /上[海天]/g;
// var reg = /上海|上天/g;
var str = "上海,上天,上去,上哪里";
console.log(str.replace(reg,"*"))
```
## 1.1备选字符的unicode号连续
> [0-9]//一个数字
> [a-z]//一个小写字母
> [A-Z]//一个大写字母
> [0-9a-zA-Z]//一个数字或字母
例子:
```
var reg = /[0-9]/g;
var reg01 = /[a-zA-Z]/g;
var reg02 = /[0-9a-zA-Z]/g;
var str = "helloABCDEFGHIJKL123456789";
console.log(str.replace(reg,"*"));
console.log(str.replace(reg01,"*"));
console.log(str.replace(reg02,"*"));
```
# 2.预定义字符集:针对常用的备选字符集提供的简化符号
> [0-9] --> \d //一位数字
> [0-9a-zA-Z_] -->\w //一位数字字母或下划线
> \s //1位空字符:空格,tab,换行
> . // 除换行外,其余所有字符
例子:
```
var reg = /\s/;
var str = "hello world123456_你我";
console.log(str.replace(reg,"*"));
console.log(str.replace(/\d/g,"*"));
console.log(str.replace(/\w/g,"*"));
```
# 3.量词:定字符集出现的次数
> 特点:默认一个量词,仅修饰左侧紧邻的字符集
## 3.1 确定数量:
```
{m,n} -->至少m个,最多n个
{m,} -->m个以上
{m} -->必须m个
```
## 3.2 不确定数量
```
? -->一个或0个
+ -->1个以上
* -->多个或没有
```
> test() 方法用于检测正则表达式是否匹配字符串的一部分,返回boolean值
> 语法reg.test(str); 返回boolean值
```
var reg =/\d{5,9}/;
var str = "323232hell";
console.log(reg.test(str)); //true
```
### 贪婪模式和懒惰模式
#### 贪婪模式 :取最大值
```
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,"*"))
```
# 4. 选择和分组
> //选择
| 读作"或"
//分组
()
```
转义字符\
var a ="hello\"";
console.log(a); \\hello"
```
例子:
```
<body>
<textarea id="txt" cols="30" rows="10"></textarea>
<button id="btn">过滤</button>
<textarea id="value" cols="30" rows="10"></textarea>
<script>
var txt = document.getElementById("txt");
var btn = document.getElementById("btn");
var filter = document.getElementById("value");
var reg = /(京东)|(淘宝)/g;
btn.onclick = function(){
var txtValue = txt.value;
var newTxt = txtValue.replace(reg,"**");
// console.log(newTxt);
filter.value = newTxt;
}
</script>
</body>
```
# 5. 指定匹配位置
> 开头和结尾:^开头的xxx;$结尾的xxx
```
何时使用:仅匹配开头的规则和结尾的规则时使用
固定搭配:^正则表达式$-->表示从头到尾完整匹配
开头和结尾只出现正则表达式的内容
```
**何时使用:只要验证时,必须前加^,后加$!**
> ^\s+//匹配字符串开头的所有空字符
\s+$//匹配字符串结尾的所有空字符
```
var a =" hello";
var reg =/^\s+/;
var str =a.replace(reg,"");
console.log(str);
```
# 6. 排除
> //除了abc
> [^abc]
```
var str = "abchello world";
var reg = /[^abc]/g;
console.log(str.replace(reg,"*"))
```
- 1.JS的基础知识
- (1)调试
- (2)变量
- (3)数据类型
- 数据类型之间的转换
- (4)全局变量和局部变量
- (5)运算符和表达式
- (6)数组
- 2.控制语句DOM,BOM,事件
- (1)控制语句
- (2)DOM的基础
- 节点
- 改变样式
- DOM事件
- 3.函数
- (1)声明函数
- (2)构造函数
- (3)函数的参数
- (4)函数的传参
- (5)改变this
- (6)重载
- (7)回调函数
- 4.数组
- (1)创建数组
- (2)增删改查
- (3)字符串与数组的转换
- 5.正则
- (1)创建正则
- (2)字符串中支持正则
- (3)语法
- 最核心的元字符
- 6.ajax
- (1)原生ajax
- (2)http,get,post
- (3)跨域
- (4)jQuery-ajax
- (5)axios
- 7.面向对象
- (1)原型
- (2)原型链,继承
- (3)多态
- 8.es6小结
- 9.js+canvas实现验证码
- 10.js的作用域
- 11.闭包
- 实例
- toggle
- 图片切换
- swiper
- 遮罩颜色渐变
- 表格添加
- 瀑布流
- ajax数据请求渲染
- 百度地图