正则表达式及拓展方法

一.正则表达式的初识

正则表达式 (Regular Expression)

        用既定的规则来匹配字符串/数字 => 一般用来做表单验证和字符串匹配

正则表达式组成:

        表达式(规则)     / 内部写规则 /

        修饰符              i(忽略大小写)   g(全局匹配)        m(multiple 匹配多行)        

                注意:

                   (1)  如果正则表达式不添加修饰符g,每次默认从字符串开头匹配 => 下标为0的位置

                    (2)  如果正则表达式添加修饰符g, 默认从字符串开头匹配,如果能匹配到(包含符合正则表达式规则的某个或某段字符),则记录下标(匹配内容之后的下标)作为下次匹配开始的位置,下次调用继续向后匹配,依次类推,如果匹配不到返回对应的结果,检索的下标会重置为0  => reg.lastIndex记录下次匹配开始的位置

正则表达式创建方式
     1. 字面量创建
         var reg = /day/igm;

     2. 构造函数创建
         var reg = new RegExp("day","igm");
    
     3. 组合版
         var reg = new RegExp(/day/igm);

二.正则表达式的拓展方法

1.test()        检索字符串, 判断字符串中是否存在符合规则的某个或某段字符串(一般来说包含关系)

        返回值:存在 => true        不存在 => false

2.exec()  检索字符串, 将字符串中符合规则的某个或某段字符取出来放到数组中

        返回值: 存在 => 数组        不存在 => null

三.字符串匹配

        一.普通匹配


    字符匹配符  => 匹配集合中的任意一个字符
    [xyz]   匹配x y z中的任意一个  => 由x y z组成
    [0-9]   匹配数字中的任意一个  [0123456789]
    [a-z]   匹配小写中的任意一个  [qwertyuiopasdfghjklzxcvbnm]
    [A-Z]   匹配大写中的任意一个  [QWERTYUIOPASDFGHJKLZXCVBNM]
    [0-9a-zA-Z_]   匹配数字字母下划线
    [0-9a-zA-Z_$]  匹配 数字 字母 下划线 $


    字符匹配符取反  =>  非
    [^xyz]   匹配除x y z以外的任意一个
    [^0-9]   匹配非数字  => 除数字以外的任意一个
    [^0-9a-zA-Z_]   匹配非数字 字母 下划线

    注意:字符匹配符中除 ^ - [ ] 转义字符 以外, 都是普通字符($ + * ?)

    字符簇(官方规定的集合范围  => 直接用)
    \d   匹配数字    [0-9]
    \D   匹配非数字  [^0-9]
    \w   匹配数字 字母 下划线   [0-9a-zA-Z_]
    \W   匹配非数字 字母 下划线  [^0-9a-zA-Z_]
    \s   匹配空白字符 (空格 换行 回车)
    \S   匹配非空白字符  
    .    除换行符以外的任意字符 
    [\u4e00-\u9fa5]   匹配中文

        二.选择匹配

选择匹配符  |  在正则表达式中表示或的关系 => 通常配合()使用
    cat|dog   匹配cat或dog  (一个或一段字符之间或的关系)
    [xyz]   => (x|y|z)   可理解为字符匹配符 单字符之间或的关系

        三.转义字符

转义字符
    某些字符在正则表达式中有特殊意义,如果向匹配其对应的普通字符 => 就需要转义 => 在字符前添加 \
    {     转义     \{
    }     转义     \}
    +     转义     \+
    *     转义     \*
    ?     转义     \?
    ^     转义     \^
    $     转义     \$
    [     转义     \[
    ]     转义     \]
    -     转义     \-
    .     转义     \.
    |     转义     \|
    (     转义     \(
    )     转义     \)
    /     转义     \/
    \     转义     \\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值