zoukankan      html  css  js  c++  java
  • 最常用的~正则表达式相关js函数知识简洁分享【新手推荐】

    一、正则表达式的创建

      JS正则的创建有两种方式: new RegExp() 和 直接字面量。

            

    //使用RegExp对象创建
    varregObj =newRegExp("(^\s+)|(\s+$)","g");
     
    //使用直接字面量创建
    varregStr = /(^\s+)|(\s+$)/g;
      g 全文匹配,而非发现第一个匹配项时立即停止;
      i 忽略大小写
      m 多行匹配,
      多个条件同时使用时,写成:gmi

    二、()、[]、{} 的区别

      () 提取匹配的字符串。表达式中有几个()就会得到几个相应的匹配字符串。比如 (\s+) 表示连续空格的字符串。

      [] 匹配字符范围。比如 [a-zA-Z0-9] 匹配英文字符和数字。

      {}匹配长度,比如: \s{3} 表示 匹配三个空格,\s{1,3}表示匹配1~3个空格。

    三、^ 和 $

      ^ 匹配一个字符串的开头,比如 (^a) 就是匹配以字母a开头的字符串

      $ 匹配一个字符串的结尾,比如 (b$) 就是匹配以字母b结尾的字符串

      ^ 还有另个一个作用就是取反,比如:[^xyz] 表示匹配的字符串不包含xyz

      需要注意的是 :如果^出现在[]中一般表示取反,而出现在其他地方则是匹配字符串的开头

    四、\d  \s  \w  .

      \d 匹配一个非负整数, 等价于 [0-9]

      \s 匹配一个空白字符

      \S 非空白字符  

      [\s\S]  任意字符

      \w 匹配一个英文字母或数字,等价于[0-9a-zA-Z]

      .   匹配除换行符以外的任意字符,等价于[^\n]

    五、* + ?

      * 表示匹配前面元素0次或多次,比如 (\s*) 就是匹配0个或多个空格

      + 表示匹配前面元素1次或多次,比如 (\d+) 就是匹配由至少1个整数组成的字符串

      ? 表示匹配前面元素 0次或 1次 ,相当于{0,1} , 比如(\w?) 就是匹配最多由1个字母或数字组成的字符串
     
    六、()\数字:重复匹配
     
      \1表示重复正则第一个圆括号内匹配到的内容
      \2表示重复正则第二个圆括号内匹配到的内容
      比如有以下正则:
        ([a-z])([a-z])\2\1    //先[a-z]两次,匹配字母如a、b ,然后\2和\1分别代表b和a再重复一次,即最终匹配为abba类型的字符组合
      则可以匹配字符串abba
     
    六、正则表达式 实例方法
     
      1、exec() 返回一个数组或者null 两个属性:index匹配的位置,input应用正则的字符串text
        var text ="some text";
        var pattern = /pattern1/gi;
        var c = pattern.exec(text);     //c是一个数组(第一个是匹配字符串pattern1,捕获组1,捕获组2.。。。)
        捕获组是()内的内容,如:c(at)?
        所以:c[0] = cat, c[1] =at;
     
      2.test()   返回true或者false
        var c = pattern.test(text);
      3.match() 可在字符串内检索指定的值,或者找到一个/多个正则表达式的匹配项
        text.match("str或者是Reg")
      如果reg没有指定g,则执行一次匹配,返回一个数组,第一个值为匹配值,其余为正则表达式的子表达式的匹配项。
      如果reg制定了g,则全局匹配,返回所有匹配项组成的数组。
      4.indexOf() 从左开始、lastIndexOf()从右开始       参数1:要查找的项      参数2(可选):查找起点
           ---Array方法---
      例:
        var a = [2,1,3];
        a.indexOf(4);     //-1
        a.indexOf(2);     //0

    七、replace

       replace 本身是JavaScript字符串对象的一个方法,它允许接收两个参数:

       replace([RegExp|String],[String|Function])
     

       例:

       实现字符串的trim函数,去除字符串两边的空格

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String.prototype.trim =function(){
     
    //方式一:将匹配到的每一个结果都用""替换
    returnthis.replace(/(^\s+)|(\s+$)/g,function(){
    return"";
    });
     
    //方式二:和方式一的原理相同
    returnthis.replace(/(^\s+)|(\s+$)/g,'');
    };
     
     
      
      作者:没错high少是我                                                                                                                                                                                     
      出处:http://www.cnblogs.com/highshao/                                                                                                         
      本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。                             
  • 相关阅读:
    CF 461B Appleman and Tree
    POJ 1821 Fence
    NOIP 2012 开车旅行
    CF 494B Obsessive String
    BZOJ2337 XOR和路径
    CF 24D Broken robot
    POJ 1952 BUY LOW, BUY LOWER
    SPOJ NAPTIME Naptime
    POJ 3585
    CF 453B Little Pony and Harmony Chest
  • 原文地址:https://www.cnblogs.com/highshao/p/5417516.html
Copyright © 2011-2022 走看看