• JavaScript中的正则表达式


    1、相关概念

    正则表达式:是指由一些特殊的特定字符以特定形式组合在一起,进行字符串的匹配、查找、规则验证等。

    正则表达式由原子元字符模式匹配符组成。

    (1)原子:表示想要匹配的字符。

        a、使用普通字符充当原子a-z、A-Z、0-9;

        b、使用特殊的转义字符充当原子;

        d  匹配0-9之间任意一个数字

        D    匹配0-9之间之外的任意一个数字

        s  匹配任意一个空白符(空白符包括回车符 、换行符 、制表符 )

        S    匹配空白符之外的任意一个字符

        w    匹配字母、数字、下划线中任意一个字符

        W   匹配除了字母、数字、下划线之外的任意一个字符 

        c、使用特殊的元字符充当原子;

         .     匹配除了换行符之外的任意一个字符 

    (2)元字符:用于描述位置、数量等信息。

        ?  *  +  [  ]  (  )  {  }  ^ |  &  .        B

        a、{ } 描述原子数量

        {m} 描述其前原子恰好出现m次

        {m,}   描述其前原子至少出现m次

        {m,.n}  描述其前原子至少出现m次,最多出现n次

        b、[ ] 原子列表,匹配列表中的任意一个字符

        c、[^ ]  排除原子列表,即除了原子列表之外的任意一个字符

        d、^  字符串起始位置

        e、$  字符串结束位置

        f、*   描述其前原子出现0次、1次或多次;同时*具有贪婪模式,只要符合条件就选取最多的

        g、+  描述其前原子出现1次或多次,具有贪婪模式

        h、?描述其前原子出现0次或1次

        i、|  或者关系

        j、    B  描述字符是否为单词的边界

         表示是单词的边界

        B表示不是单词的边界

        注意:英文中使用空格来分割单词

       k、模式单元  ()   会看做一个整体,将匹配到的数据返回到结果数组中

        贪婪模式: .+  和  .*  获取最多的符合条件的数据

        拒绝贪婪模式: .+?  和  .*?

        模式匹配单元(),默认匹配的结果进行存储,同时能够使用特定的方式进行调用

        若使用模式单元,但是不想存储结果,使用(?:),表示当前的模式单元不进行存储

        

    (3)模式匹配符

        g  表示全局模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止

        i   表示不区分大小写模式,即在确定匹配项时忽略大小写

       m    表示多行模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项

      注意:模式匹配符可以组合使用。

    2、正则表达式定义的2种方式

    (1)使用new RegExp()构造函数实例化获取对象

    (2)使用字面量双斜杠/  /形式快速定义正则表达式

     RegExp实例属性:

    (1)global  布尔值,表示是否设置了g标志

    (2)ignoreCase  布尔值,表示是否设置了i标志

    (3)multiline  布尔值,表示是否设置了m标志

    (4)source  正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回

    (5)lastIndex  整数,表示开始搜索下一个匹配项的字符位置,从0算起

    3、例子

    example1    斜线、反斜线

    example2   用户名匹配

     

     example3  使用正则表达式获取所有图片的地址

    example4   replace()替换敏感词汇

     

    example5  正则表达式匹配一个IP地址

    example6  正则表达式匹配一个邮箱

    example  正则表达式匹配中文

  • 相关阅读:
    怎么能让json_decode解析带斜杠的字符串
    **PHP转义Json里的特殊字符的函数
    sql中exists,not exists的用法
    **mysql数据库中实现内连接、左连接、右连接
    **PHP foreach 如何判断为数组最后一个最高效?
    mysql sql语句中用括号处理or和and的运算顺序
    iOS图片缓存
    linux regulator之浅见【转】
    Linux中THIS_MODULE宏定义详解
    likely()与unlikely()
  • 原文地址:https://www.cnblogs.com/sherryStudy/p/js_regexp.html
Copyright © 2020-2023  润新知