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/                                                                                                         
      本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。                             
  • 相关阅读:
    日志框架1---多种日志门面和日志实现初步了解(转载)
    @Autowired 与@Resource的区别(转)
    Spring 之jdbc模板(JdbcTemplate与NamedParameterJdbcTemplate)
    springMVC中的Controller里面定义全局变量
    spring批量更新数据 ---- BatchPreparedStatementSetter
    easyui树查找
    根据ID和parentID利用Java递归获取全路径名称
    一个统一将数据转换为JSON的方法
    上传图片并限制图片格式和大小
    js上传文件(图片)的格式和大小限制
  • 原文地址:https://www.cnblogs.com/highshao/p/5417516.html
Copyright © 2011-2022 走看看