正则表达式

概念: 正则表达式是一个包含正常字符与元字符的用于匹配的字符串对象

如何创建正则表达式

  1. 构造函数:new RegExp('map')
  2. 字面量/map/

    常用元字符

  3. 基本元字符 . () [] |
  4. 限定元字符
      • ? {n} {n,} {n,m}
  5. 首位元字符 ^ $
  6. 简写元字符 \d \D \s \S \w \w
  7. 其他 反向引用 \数字 匹配但不捕获 (?:)

     . 除了换行以外的任意字符
     [] 出现在[]中的任意一个字符
     () 一方面提高优先级,另一面分组
     | 或 具有最低优先级
    
     * 紧跟在前面的字符出现0次或多次,默认尽可能多的匹配  {0,}
     + 紧跟在前面的字符出现1次或多次,默认尽可能多的匹配  {1,}
     ? 紧跟在前面的字符出现0次或1次                     {0,1}
    
     {n} 紧跟在前面的字符出现n次
     {n,} 紧跟在前面的字符至少出现n次
     {n,m} 紧跟在前面的字符出现n-m次
    
      ^  放在正则一开始, 表示匹配必须以 xxx 开头
        放在 [] 中表示 否定, [^abc]
    
      $ 放在正则的结尾处, 表示必须以 xxx 结尾
        在替换中使用 $数字 表示组引用
    
      \d        数字            digit
      \D        非数字
    
      \s        空白(空格, 换行, ...)            space
      \S        非空白        [\S\s] 表示任意的一个字符
    
      \w        文字: 数字, 字母, 下划线            word
      \W        非文字
    
      \数字      引用前面匹配到的组
                <div>...</div>
                <([^>]+)>[^<]+</\1>
    
      (?:)
    

    常用方法:

  8. 正则.test(str) 表示这个字符串是否符合正则表达式

  9. 正则.exec(str) 表示利用正则将字符串中复合的子字符串截取胡来,存储到数组中,每次只取一个
        取出字符串中的数字到数组中
        var str='1abdf2lkui19erehgih354hshu6';
        var arr=[];
        var r=/\d+/g;
        var m;
        while(m=r.exec(str)){
            console.log(m);
            arr.push(m[0]);
        }
       console.log(arr); //["1", "2", "19", "354", "6"]

3.字符串.replace(正则,替换字符) 表示将字符串中符合正则的内容,替换成指定的字符

        替换字符串中的数字为*
        var str='1abdf2lkui19erehgih354hshu6';
        var res=str.replace(/\d+/g,'*');
           console.log(res); //*abdf*lkui*erehgih*hshu*
posted @ 2016-08-11 22:57  贵欢lucky  阅读(143)  评论(0编辑  收藏  举报