用来处理字符串的规则

  • 只能处理字符串
  • 它是一个规则:可以验证字符串是否符合某个规则,也可以把字符串中符合规则的内容捕获到(exex/match)

    1. let str = "good good study , day day up!";
    2. // 学正则就是用来制定规则(是否包含连续的数字)
    3. let reg = /\d+/;
    4. reg.test(str);
    5. console.log(reg.test(str)); //false
    6. str = '2019-8-12';
    7. reg.exec(str);
    8. console.log(reg.exec(str)); //["2019", index: 0, input: "2019-8-12", groups: undefined]

    1.编写正则表达式

    创建方式有两种 ```javascript // 字面量创建方式(两个斜杠之间抱起来的,都是用来描述规则的元字符) let reg1 = /\d+/;

// 构造函数模式创建类 2个参数,元字符字符串,修饰符字符串 let reg2 = new RegExp(‘\d+’);

正则表达式由两部分组成

- 元字符
- 修饰符
```javascript
// 常用的元字符
// 1.量词元字符,设置出现的次数
* 0到多次
+ 一到多次
?0次或一次
{n} 指定n次
{n,} 指定出现n次以上(n>=0)
{n,m}出现n到m次

// 特殊元字符:单个或者组合在一起代表特殊含义
\ 转移字符(普通>特殊>普通)
.  除\n(换行符)以外的任意字符
^ 以哪一个元字符作为开始
$ 以哪一个元字符作为结束
\n 换行符
\d 0~9之间的一个数字
\D 非0~9之间的一个数字(大写和小写是相反的意思)
\w 数字,字母,下划线中的任意一个字符
\s 一个空白字符(包含空格,制表符,换页符等等)
\ t 一个制表符 (一个tab键: 4个空格)
x|y x或者y中的一个字符(1|9)
[xyz] x或者y或者z中的一个字符
[^xy]除了x或者y意外的任意字符
[a-z]
[^a-z]上一个的取反“非”
() 正则中的分组符号
()
(?:)只匹配不捕获
(?=)正向预查
(?!)负向预查

// =>普通元字符:代表本身含义的
/ zhufeng/ 此正则匹配的就是zhufeng
//正则表达式常用的修饰符:img
i => ignorecase 忽略单词大小写匹配
m =>multiline 可以进行多行匹配
g =>global 全局匹配