JavaScript正则表达式

正则表达式的作用

正则表达式是一个字符串,一个用来对字符串进行处理的字符串
字符串的处理:匹配 .match();
提取 .match();
替换 .replace();
切割 .split();

正则表达式的组成

正则表达式的组成:字符、数量、边界词、修饰词、分组

  1. 字符:
    a b c 任何一个字符都可以作为正则表达式的字符
    [abc] 表示一个字符,a 或者 b 或者 c
    [a-z] 表示 a-z 之间所有的小写字母
    [A-Z] 表示 A-Z 之间所有的大写字母
    [ ^abc] 表示除a b c 以外所有的字符
    [0-9] 表示0-9所有的阿拉伯数字
    [a-zA-Z_0-9] 表示单词字符(小写的a-z,大写的A-Z,下划线,0-9)

    预定义字符:
    . 表示所有字符
    /d 表示所有的数字
    /D 表示非数字字符
    /w 表示单词字符
    /W 表示非单词字符
    /s 表示空白字符
    /S 表示非空白字符

  2. 数量词
    数量词用在字符后面,用来定义这个字符的个数
    [a]{n} 表示字符a出现n次
    [a]{n,} 表示字符a至少出现n次
    [a]{n,m} 表示字符a至少出现n次,最多出现m次
    [a]? 表示字符a出现0次或者1次
    [a]* 表示字符a出现0次或者多次
    [a}+ 表示字符a出现1次或者多次

例子:[a]{5} 表示字符a出现5次
a[a-z]{3}b 表示a b 之间有三个a-z的小写字符

懒惰性数量词:数量词 ?
例子:{3,}? 数量至少是3次以上,但尽可能的少
?? 数量是0次或者1次,但尽可能的少
贪婪性数量词:JavaScript中默认为贪婪性数量词

  1. 边界词
    /b 单词边界(正则表达式开头和结尾都写上/b),只对半角字符起作用
    ^ 表示行开头
    $ 表示行结尾

  2. 修饰词
    g 表示全局匹配,默认情况下正则表达式只匹配一次(匹配第一个),全局匹配将所有符合要求的内容全部匹配出来
    i 表示忽略大小写
    语法格式: /正则表达式/gi; 表示全局匹配且忽略大小写

  3. 分组及分组捕获
    使用 () 对正则表达式进行分组,整个正则表达式默认为一个分组

每个分组都有一个下标,下标是从0开始的连续的整数
例子:(a(b(cd))) 下标是 0
b(cd) 下标是 1
cd 下标是2
由于一般情况下,整个分组的下标是不用写括号的,所以我们一般看到的括号的分组是从第第二组开始的(下标是1)

使用分组的下标可以捕获相应的分组
捕获方式: /下标
例如:
/a(.) /1*c/ 其中(.)为第二组下标为1,/1表示捕获(.)且将其重复表示一次, 整个表达式的含义为:a c 之间一个任意字符 和 这个任意字符重复出现0次或多次。

  1. 断言
    语法格式:(?<=断言的内容)正则表达式
    例子:
    /(?<=tel:)/d{11}/ 表示左边是以tel:开头的11位数字
    //d{11}(?=tel:)/ 表示右边是以tel:结尾的11位数字

/(?<!tel:)/d{11}/ 表示左边不是以tel:开头的11位数字
//d{11}(?!tel:)/ 表示右边不是以tel:结尾的11位数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值