正则表达式简单记录

普通匹配符:

能够匹配与之对应的字符

*正则默认区分大小写
 match(/表达式/):匹配成功返回数组,否则返回null
 i、g、m称为正则标记符(参数) :

            i : 不区分大小写
            g : 全局匹配
            m : 多行匹配

let  str = 'Hello World world';
let  reg = str.match(/w/gi);
//["W", "w"]

能够匹配多个字符中的其中一个的匹配符

     ★ \d、\w、. 都只能匹配一个

  1. \d : 0~9
  2. \w : 数字、字母、下划线
  3. . : 匹配除换行的所有字符
let str = 'Hello World 1235$';
let reg = str.match(/\w.\d/);
//["d 1", index: 10, input: "Hello World 1235$", groups: undefined]

[]:能够自定义规则的匹配符

let str = '12356';
let reg = str.match(/1[3578]\d{3}/);
//str = '12356'; 返回 null
//str = '13356'; 返回 ["13356", index: 0, input: "13356", groups: undefined]

用来修饰匹配次数的匹配符

  1. {n} : 代表前面的匹配符出现n次
  2. {n,m} : 出现n~m次
  3. {n,} : n~max
  4. {,n} : min~n
  5.  + : 1~max
  6.  ? : 0~1
  7.  * : 0~max
let str = '15032365696';
let reg = str.match(/^1[35789]\d{9}$/);
//["15032365696", index: 0, input: "15032365696", groups: undefined]

正则表达式的完整匹配

  1. ^ : 在[]中([^])代表取反,但在外面代表的是从开始匹配
  2. $ : 持续匹配到结束
let str = '15023232659';
let reg = str.match(/^1[35789]\d{9}$/);
//str = '15023232659' 返回["15023232659", index: 0, input: "15023232659", groups: undefined]
//str = 't-15023232659' 返回 null

在正则中:^  $  .  \   []等特殊符号在匹配的时候需要加\ (转义符号)

let str = '15023232659$^[].';
let reg = str.match(/\$\^\[]\./);
//["$^[].", index: 11, input: "15023232659$^[].", groups: undefined]

条件分支

  1. | 代表或
  2. () : 括号中的内容成为一个独立的整体
          括号中的内容可以进行分组,单独匹配,如果不需要此功能 (? : )

数值匹配

数值类型规律图
在这里插入图片描述

中文的处理(在计算机中通过ASCII对应表来输入汉字)

escape() : 可以把字符串转化为ASCII编码
unescape() : 可以把ASCII编码转为汉字

//escape("一") \u4E00 第一个汉字
//escape("龥") \u9FA5 最后一个汉字
let str = '陟罚臧否';
let reg = str.match(/[\u4E00-\u9FA5]/g);
//["陟", "罚", "臧", "否"]

贪婪与懒惰

在正则中默认是贪婪模式(尽可能多的匹配)
可以在修饰匹配次数的匹配符(* ? + {})后面添加 ? ,代表懒惰

IP验证

 //IP验证
 //合法ip:192.168.1.1
 //非法ip:256.168.1.1
 //保留ip: 0.0.0.0    255.255.255.255
 //拆分:
 //      250~255   25[0-5]
 //      200~249   2[0-4]\d
 //      0~199再拆:
 //          0~9         \d    ========>  [1-9]?\d
 //          10~99       [1-9]\d   ========>  [1-9]?\d
 //          100~199     1\d{2}  

 let ip = '192.168.1.142';
 let reg = /^(?:(?:25[0-5]|2[0-4]\d|[1-9]?\d|1\d{2})\.){3}(?:25[0-5]|2[0-4]\d|[1-9]?\d|1\d{2})$/;

电话号码正则:

/(^[1](([3|5|8][\d])|([4][4,5,6,7,8,9])|([6][2,5,6,7])|([7][^9])|([9][1,8,9]))[\d]{8}$)|(^(0\d{2}-)?\d{8}$)|(^(0\d{3}-)?\d{7}$)|(^0\d{2}-\d{8}-\d+$)|(^0\d{3}-\d{7}-\d+$)/

学习正则的笔记整理 ( * ^ ▽ ^* )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值