正则表达式

#2、正则表达式
##2.1正则表达式的创建
###2.1.1字面量表达式
`let reg = /a/b;`
###2.1.2函数表达式
`let reg2 = new RegExp(a,b);`

- a:表示正则要验证的规则
- b:表示修饰符,是否全局变量g,是否区分大小写i,是否多行查找m
可以不写

##2.2正则表达式的方法
###2.2.1
`test()`

示例:
```js
let reg = /a/;
let str = "abc";
console.log(reg.test(str));
//true
```
###2.2.2
`exec()`

示例:
```js
let reg = /a/;
let str = "abc";
console.log(reg.exec(str));
//["a", idnex: 0, input:"abc"]
```
##2.3、正则常用命令
###2.3.1字符组【】
示例:

```js
let reg = /[abc]/;;
let str = "aasdfbasc";
console.log(reg.test(str));
//返回false
```

- 匹配中括号中的任一个字符
- 如果是全部字符,那么必须和中括号中的格式保持一致
- 表示26个英文字母[a-z]或者[A-Za-z]
- ^表示非(匹配不在中括号中的任意字符)
示例:

```js
let reg = /[^abc]/;
let str = "a1";
console.log(reg.test(str));
//返回true,因为在字符串中能够找到一个不是abc的字符
```

##2.4简写形式
- `d表示:数字[0-9]`
- `D表示:非数字[0-9]`
- `w匹配:[0-9a-zA-Z_)]数字字母下划线`
- `W匹配:[^0-9a-zA-Z]除了数字字母下划线以外的任意字符`
- `s匹配:空白字符`
- `S匹配:非空白字符`
- `·匹配:除了回车	换行
以外的所任意字符`

##2.5量词
- `n{x}匹配x个n`
- `n{x,y}匹配x到y个n`
- `n{x,}匹配至少x个n`
- `n?匹配0-1个n`
- `n*匹配0或多个n`
- `n+匹配至少1个n`

##2.6特殊字符

- `|表示或`
- `表示转义符:将有特殊含义的字符转化为普通字符`
- `()对规则进行分组`
- `^n匹配以n开头的字符`
- `n$匹配以n结尾的字符`

##2.7修饰符
- `g表示全局查找`
- `i表示不区分大小写`
- `m表示多行查找`

##2.8字符串配合正则使用的方法
- `search()`找到第一个满足条件的下标

 示例:
    ```js
    
    let str = "Mr Blue has a blue car and blue house";
    
    let reg = /blue/g;
    
    console.log(str.search(reg));
    
    //14,第一个blue下标为14
    ```

- `match()`找到全部满足条件的字符串
非全局不区分大小写,并且满足条件的的字符串只有一个的时候,会显示["字符","下标","以及input"]

示例:
    
    ```js
    
    let str = "Mr Blue has a blue car and blue house";
    
    let reg = /blue/gi;
    
    console.log(str.match(reg));
    
    //["Blue", "blue", "blue"]


- `replace()`替换

示例:
    
    ```js
    
    let str = "Mr Blue has a blue car and blue house";
    
    let reg = /blue/gi;

    console.log(str.replace(reg, "red"));

    //Mr red has a red car and red house
原文地址:https://www.cnblogs.com/cj-18/p/9097506.html