正则表达式

正则创建的两种方式

                  1.字面量var pattern=//;    一般都用字面量方法,简单直接

                     

                  2. 构造函数var pattern=new RegExp();里面可接受两个参数,第一个是将要匹配的字符,第二是修饰符i;优势:可以用变量动态添加参数

                     

 

三种模式修饰符

                 i:不区分大小写,

                 g全局匹配,

                 m多行匹配

                 \n表示换行,多行匹配必须有一个全局匹配,没有m,只有g,系统则不会看见换行,只有一行

 

正则操作字符串方法:

pattern.test(str);  返回true/false,是否含有匹配的值

 

patter.exec(str)    将匹配的值,放入数组并返回,没找到返回null

非全局匹配下,exec()始终匹配第一个

全局匹配下,exec()也只是匹配一个,多次执行exec()会依次匹配项对应的值,直到null停止,再执行exec()又会从头执行

 

字符串操作正则的方法:

              str.replace(pattern,替换的代码)

            

                   特殊点1:用$1来代替分组的内容,可在替换中设置CSS样式

                     

                    特殊点2: 不管有没有分组,$0就表示pattern里的内容,匿名函数的返回值就是替换的文本,也有两个参数function(all,letter){},all表示str的内容,letter表示匹配到的值

                      

              str.match(pattern); 不过找到一个或多个正则表达式的匹配时,会一次性返回一个数组

              

              str.search(pattern);    仅仅只是返回匹配到的第一个下标,与是否有全局匹配无关,不存在返回-1 

              str.split(pattern);        将字符串转化为数组

                

 

元字符:正则中有特殊含义的非字母字符

         . * + ? $ ^ | \ () [] {}

       1   . 匹配除了 \n \r \u2028或\u2029  以外所有的字符

       2   * 0个或多个   + 至少1个  ?0个或1个

       3    转义字符:反斜杠\ 

             将特殊含义转化为字面量含义;

                

         4   ^开头  $结尾

                 

         5  []字符集合,'或者'的含义  ;    [^]取反

                 

 

          6  边界符: \b     非 \w(字母或数字或下划线)都被称为边界

 

          7  分组  () ;

               

 

                 

               (?:)表示非捕获分组,不再单独匹配分组; 

                 

                \1  \2

                

          8  选择:|    也可以叫'或'

                 

  

           9  零宽断言:正向(后面)        负向(前面)

                 

                 

                 

                

 

  常用字符类:   

           /[a-z]/;在a~z的范围内匹配

           /[\u4e00-\u9fa5]/;中文汉字匹配

           /[a-zA-Z]/;同时在a~z大小写中匹配

           /[a-zA-Z0-9]/; 可组合

   常用字符类简写:

\d 匹配数字,相当于 /0-9/
\D 匹配非数字,相当于/^0-9/
\w 匹配字母或数字或下划线,不能匹配汉字,汉字:[\u4e00-\u9fa5]
\W 匹配任意不是字母、数字、汉字或下划线的字符
\s 匹配任意的空白符,如空格、换行符、制表符等
\S 匹配任意不是空白符的字符
.(号) 匹配除了换行符以外的任意字符,大概就是匹配任意字符
[] 匹配方括号中的第一个字符
[^] 匹配非方括号中的所有字符的第一个

 

 

posted @ 2019-01-11 23:46  fanbu  阅读(164)  评论(0编辑  收藏  举报