zoukankan      html  css  js  c++  java
  • 浅入javascript正则表达式的规则.

    今天在看jQuery源码的时候,到处都是正则的用法,一气之下就狠下心来.重新回顾了一下正则.下面是做的笔记.非常浅的入门.

    复制代码
      1  /*
      2             i:表示不区分大小写
      3             g:表示可以全局配置
      4             m:表示可以多行配置
      5             */
      6             /*
      7             ^:表示从字符串的第一个位置开始匹配
      8             */
      9             var result = false;
     10             var str = "guoGuo";
     11             var reg = /^gu/; //匹配字符串是否已gu开头
     12             result = reg.test(str);//true                      
     13            
     14             /*
     15             $:匹配字符串的尾端
     16             */
     17             str = "guoyansi";
     18             reg = /i$/;//是否已i结尾
     19             result = reg.test(str); //true    
     20             /*
     21             *:匹配前一个字符0次或多次
     22             /a星号/:以a开头开始匹配,如果匹配到a,则返回a,否则返回null
     23             /ab星号/:以a开头开始匹配,如果匹配到了a,返回a,匹配到了abbb...返回abbb....
     24             0次:没有b的就匹配a
     25             多次:有a,后面不论多少个b,都匹配出来abbb....
     26             */
     27             str = "dadbudabbbbc";
     28             reg = /du*/g;
     29             result = str.match(reg);
     30             
     31             /*
     32             +:匹配前一个字符一次或多次
     33             /a+/:以a开头开始匹配,如果匹配到a,则返回a,否则返回null
     34             /ab+/:以a开头开始匹配,如果匹配到了a,并且在a后面匹配到了b,则返回abbb...;
     35             1次:表示a后面没有b,就不返回.如果有b则返回ab.有一个b则返回一个b
     36             多次:表示a后面没有b,就不返回.如果有b则返回ab.有多个b则返回多个b
     37             */
     38             str = "ddadbbbbc";
     39             reg = /ab+/g;
     40             result = str.match(reg);
     41             /*
     42             ?:一般是对前一个字符的0次或1次匹配;
     43             0:没有就是0次
     44             1:有就匹配一次
     45             */
     46             str = "ddabbdbbbbabbc";
     47             reg = /ab?/g;
     48             result = str.match(reg); //ab,ab
     49             /*
     50             ?在星号和+,{},?后面,表示原始匹配的最小次数
     51             星号最小次数0;
     52             +:最小次数是1
     53             */
     54             str = "ddabbdbbbbabbc";
     55             reg = /ab*?/g;
     56             result = str.match(reg); //a,a
     57 
     58             reg = /ab+?/g;
     59             result = str.match(reg); //ab,ab
     60 
     61             /*
     62             .(点号):匹配一个单独的字符
     63             */
     64             str = "guoaaaaagio";
     65             reg = /g.o/g;
     66             result = str.match(reg); //guo
     67 
     68             /*
     69             (xxx):匹配字符串
     70             */
     71             str = "guoooooaaaaagjao";
     72             reg = /g(uo*)a/g;
     73             result = str.match(reg); //guoooooa
     74 
     75             /*
     76             x(?=y):匹配x,并且只有紧跟的后面是y
     77             */
     78             str = "guoyansi";
     79             reg = /uo(?=yan)/g;
     80             result = str.match(reg); //uo
     81 
     82             /*
     83             x(?!y):匹配x,并且紧跟后面的不是y
     84             */
     85 
     86             str = "guoyansi";
     87             reg = /uo(?!yan)/g;
     88             result = str.match(reg); //null
     89             str = "guoyanuosi";
     90             result = str.match(reg); //uo(后面一个uo)
     91 
     92             reg = /d+(?!.)/g; /*匹配数组,*/
     93             str = "54.235"; /*从数字开始匹配,匹配到之后,紧跟着后面的不能是数组*/
     94             result = str.match(reg); //5,235
     95             /*
     96             d:匹配数字字符
     97             */
     98             reg = /d/g;
     99             str = "123859";
    100             result = str.match(reg); //1,2,3,8,5,9
    101 
    102             /*
    103             D:匹配非数字字符
    104             */
    105             str = "abc1hfd8dsv";
    106             reg = /D/g;
    107             result = str.match(reg); //a,b,c,h,f,d,d,s,v
    108 
    109             /*
    110             x|y:匹配x或y,如果x,y都匹配上了,返回x
    111             */
    112 
    113             reg = /uo|n/g;
    114             str = "nguoyansi";
    115             result = str.match(reg); //n,uo,n(在没有g的情况下,返回n)
    116 
    117             /*
    118             {n}匹配前一个字符的n次出现
    119             */
    120             str = "tabbcdabbt";
    121             reg = /ab{2}/g;
    122             result = str.match(reg); //abb,abb
    123 
    124             /*
    125             {n,}匹配前一个字符至少出现n次数
    126             */
    127             str = "tabbbbbcdabbt";
    128             reg = /ab{2,}/g;
    129             result = str.match(reg); //abbbbb,abb
    130 
    131             /*
    132             {n,m}匹配前一个字符至少出现n次,至多出现m次
    133             */
    134             str = "tabbbbbbcabbbbbbbdabbt";
    135             reg = /ab{2,4}/g;
    136             result = str.match(reg); //abbbbb,abbbb,abb
    137 
    138             str = "tabbbbcabbbbbbbdabbt";
    139             reg = /ab{2,4}c/g;
    140             result = str.match(reg); //abbbbc
    141 
    142             /*
    143             [xyz]:匹配[]的一个字符,等同于[a-z],只匹配其中的一个字符,如果匹配到多个,则返回null
    144             */
    145             str = "abddgacdg";
    146             reg = /a[bc]d/g;
    147             result = str.match(reg); //abd,acd(bc连一起,就匹配不到)
    148 
    149             /*
    150             [^xyz]:匹配非[]中的一个字符
    151             */
    152             str = "abd";
    153             reg = /a[^bc]d/;
    154             result = str.match(reg); //null
    155 
    156             str = "afddgatdg";
    157             reg = /a[^bc]d/g;
    158             result = str.match(reg); //afd,atd
    159 
    160             /*
    161             []:匹配退格键
    162             */
    163 
    164             /*
    165             :匹配一个词的边界符,例如空格或换行等等,当匹配换行符是,匹配参数m
    166             */
    167             reg = /c./g;
    168             str = "Beijing is ca cbeautiful city";
    169             result = str.match(reg); //ca,cb,ci
    170 
    171             /*
    172             B:代表一个非边界
    173             */
    174             reg = /Bi./g;
    175             str = "Beijing is a beautiful city";
    176             result = str.match(reg); //ij,in,if,it
    177 
    178             /*
    179             f:匹配一个换页符
    180             */
    181 
    182             /*
    183             
    :匹配一个换行符,因为是换行符,所以要加入参数m
    184             */
    185 
    186             /*
    187             
    :匹配回车符
    188             */
    189 
    190             /*
    191             s:匹配空格符
    192             */
    193             str = "ab cd t";
    194             reg = /b[s]c/g;
    195             result = str.match(reg); //b c
    196 
    197             /*
    198             S:匹配非空格
    199             */
    200             str = "guoy ansiguoyansi";
    201             reg = /y[S]n/g;
    202             result = str.match(reg); //yan
    203 
    204             /*
    205             	:匹配横向的tab
    206             */
    207 
    208             /*
    209             v:匹配竖向的tab
    210             */
    211 
    212             /*
    213             w:匹配数字、_或字母[a-zA-Z0-9]
    214             */
    215             str = "g1u中5国ir人_r";
    216             reg = /w/g;
    217             result = str.match(reg); //g,1,u,5,i,r,_,r
    218 
    219             /*
    220             W:匹配飞数字、_或字母[^a-zA-Z0-9]
    221             */
    222             str = "g1u中5国ir人_r";
    223             reg = /W/g;
    224             result = str.match(reg); //中,国,人
  • 相关阅读:
    定义类和类的实例化
    python学习第二天-文件的读写
    python学习第二天 pyhon字符串操作
    PYTHON的元组和字典丶深拷贝丶浅拷贝丶集合的常用操作方法
    python 数组的常识操作和切片
    Python字符串、集合练习_密码校验
    Python字典练习_注册校验
    获取随机的字符串
    PHP 阿拉伯数字转中文表述
    小程序发送验证码倒计时
  • 原文地址:https://www.cnblogs.com/baiduligang/p/4247412.html
Copyright © 2011-2022 走看看