正则学习笔记

用途

  字符匹配

语法

  常用元字符

      

      []     区间范围框 枚举值  [a-z0-9A-Z_]

      |    分枝条件或

      \    特殊转义符(取消转义)

      \W        [^A-Za-z0-9_]

      [\r\n]      换行符匹配

      [\u4e00-\u9fa5]   汉字

      [\s\S]     任意字符

  限定符

        

        贪婪匹配:默认的匹配方式,尽量匹配更多的字符  .*

        懒惰匹配:若发现匹配立即返回,懒惰搜索    .*?

        例:/a.*b/.exec("/abcdedfb")  abcdedfb

          /a.*?b/.exec("/abcdedfb")     ab

  分组/捕获组

    ()  从左向右,以分组的左括号为标志。 \1代表分组1,js中对应RegExp.$1。 (?:exp)可以取消分组纪录

                          常用分组语法

          

Javascript的正则

  模式

    g  全局匹配,匹配后会标记lastIndex用于下一次继续匹配。

    i   忽略大小写

    m   换行匹配,影响^/$定义

  初始化

    1)/pattern/flags  2)new RegExp("pattern","flags")   字符串转义 \   => \\

    例:  /\./i=new RegExp("\\.","i")

  api

    pattern.exec(str)  执行正则匹配,获取指定匹配。静态属性RegExp.$1~$9  保存第1~第9个匹配的捕获组()的信息

/>\s*([\u4e00-\u9fa5]+.*?)<\//g.exec("<h2>第三方平台开启公测</h2>")      

[">第三方平台开启公测</", "第三方平台开启公测", index: 3, input: "<h2>第三方平台开启公测</h2>"]

    str.match(/reg/g)   

获取str匹配正则reg的所有内容      "中文abc中文123中文".match(/[^\u4e00-\u9fa5]+/g)    ["abc","123"]    

    pattern.test(str)   验证是否满足正则,不关心匹配的字符

 

参考资料:http://deerchao.net/tutorials/regex/regex.htm

 

常用正则:

XSS过滤:/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/

url匹配正则:/http:\/\/([\w.]+)(\/[\w\/]+\/)([\w.]+)(?:\?([\w=&]+))?/g;

posted on 2013-02-17 21:23  西瓜SY  阅读(381)  评论(0编辑  收藏  举报