正则表达式

 

正则

        是一种复杂数据类型

        作用:用来检验字符串,验证书写的字符串是否符合规则,也把正则叫做正则表达式

创建正则

        字面量方式创建

                语法:var 变量名 = / 内容 /

        内置构造函数创建

                语法:var 变量名 = new regExp ("内容")

正则常用方法

        test方法 test()

                语法:正则 . test(要检验的内容(字符串))

                返回值:true 表示字符串中有能匹配的内容

                        flase 表示字符串中没有能匹配的内容

        exec方法 exec()

                语法:正则 . exec(内容)

                作用:用来捕获

                返回值:如果没有我们要的内容,返回值为null

                        如果有,返回是一个数组

                        1,没有()也没有全局g

                                索引0位置是捕获出来的结果

                                不管捕获多少次都是第一个满足条件的结果

                        2,有全局g

                                第一次捕获出来是满足条件的的第一个内容

                                后面再次捕获从上次结束位置开始向后捕获,以此类推

                                直到捕获为null

                                如果继续捕获,又从第一个满足的开始捕获

                        3,有()

                                一层意思:一个整体

                                二层意思:单独捕获

                                索引0位置是原始字符串

                                索引1位置是我们单独捕获的内容

两种创建方式的区别

        语法区别

                字面量 :var reg = / abc /ig

                内置构造函数:var reg = new RegExp("abc","ig")

        拼接字符串区别

                字面量方式不能拼接字符串

                内置构造函数方式可以拼接字符串

        书写元字符方式不同

                字面量方式 : /\d\w\s/

                内置构造函数方式:new RegExp('\\d\\w\\s')

                        =>因为 \ 是一个转义字符

                        =>\d是一个没有意义的字符,需要转义

正则的符号

        元字符

                修饰符(标识符)

        元字符

                书写在正则表达式内部的符号

        基本元字符

                \d 表示一位数字

                \D 表示一位非数字

                \s 表示一位空白内容(换行,空格,缩进)

                \S 表示一位非空白内容

                \w 表示一位数字0--9,或字母a--z,A--Z,或下划线__

                \W 表示一位非数字0--9,或字母a--z,A--Z,或下划线__

                . 表示一位非换行以外的内容

                \ 表示一个转义字符

        边界符

                ^ 表示以...开头

                $ 表示以...结尾

                注意:如果一起使用表示从开头到结尾

        特殊符号

                ():第一层()表示一个整体

                        第二层()表示单独捕获

                 |: 表示或,占位或

                      表示符号左侧或右侧任何一个

                 [ ]:  表示包含的意思,表示只能是其中一个内容,也就是 [ ] 中任何一个都可以

                [^ ]: 表示的是非,也就是符号中的任何一个都不可以

                 -  :  表示至或者到

                           一般和【】或[^ ]连用

                   注意:必须和ASCII(unicode编码)连着的才可以

        修饰符(标识符)

                书写在正则表达式外面的符号,如果两个符号一起出现,谁在前面无所谓

                i:表示忽略大小写

                g:全局

        限定符

                就是用来限定前面符号出现的次数

                * 表示前面的符号出现 0--多次

                + 表示前面的符号出现 1--多次

                ? 表示前面的符号出现 0--1次

                {n} 表示前面的符号出现指定次数

                {n,} 表示前面的符号出现n次到多次

                {n,m} 表示前面的符号出现n次到m次

正则的两大特性

        懒惰性

                每次在捕获时都是从头开始,不记忆之前的位置

                解决方案是加全局标识符g

        贪婪性

                尽可能多的获取

        匹配机制

                贪婪匹配:能拿多少拿多少

                非贪婪匹配:能拿多少拿多少

        非贪婪限定符

                *?

                +?

                ??

                {n,}?

                {n,m}?

可以使用正则的字符串方法

        replace()

                语法:字符串 . replace(换下片段,换上片段)

                语法:字符串 . replace(正则,换上片段)

                在使用正则时,如果没有全局g和使用字符串方法一样

        search()

                语法:字符串 . search(内容)

                语法:字符串 . search(正则)

                作用:和indexOf一样

                返回值:如果有就是第一次出现的索引

                        如果没有就返回-1

        match()

                语法:字符串 . match(内容)

                语法:字符串 . match(正则)

                返回值:是一个数组

                在没有全局g的时候只捕获第一个

                如果有全局g,有多少捕获多少

正则预查

        正向:从左向右这个方向

                正向肯定预查(?=)

                正向否定预查(?!)

        负向:从右向左这个方向

                负向肯定预查(?<=)

                负向否定预查(?<!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值