规则
开头结尾
    "^The":表示所有以"The"开始的字符串("There","The cat"等);
    "of despair$":表示所以以"of despair"结尾的字符串;

重复
    "ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……);
    "ab+":表示一个字符串有一个a后面跟着至少一个b或者更多;
    "ab?":表示一个字符串有一个a后面跟着零个或者一个b;
    "a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。

"ab{2}":表示一个字符串有一个a跟着2个b("abb");
    "ab{2,}":表示一个字符串有一个a跟着至少2个b;
    "ab{3,5}":表示一个字符串有一个a跟着3到5个b。

"(b¦cd)ef":表示"bef"或"cdef";
    "^.{3}$":表示有任意三个字符的字符串(长度为3个字符)
    "[ab]":表示一个字符串有一个"a"或"b"(相当于"a¦b");
    "[a-d]":表示一个字符串包含小写的'a'到'd'中的一个(相当于"a¦b¦c¦d"或者"[abcd]");
    "^[a-zA-Z]":表示一个以字母开头的字符串;
    "[0-9]%":表示一个百分号前有一位的数字;

边界
    ^     行开头
    $     行结尾
    \b    单词的边界
    \B    非单词的边界

————————————————————————————————————————————————————————————
注意点
■   "^.$()¦*+?{\" 这些字符前加上转义字符'\'。

————————————————————————————————————————————————————————————
使用示例
● 初始化
    var reCat = new RegExp("cat");
    var reCat = /cat/;//Perl 风格(推荐)

● 分割金额
    var re = new RegExp("(\\d)(\\d{3})(,|\\.|$)");
    m = m.replace(re, "$1,$2$3");

● test  检查指定的字符串是否存在
      var data = "123123";
      var reCat = /123/gi;
      alert(reCat.test(data));  //true
      //检查字符是否存在  g 继续往下走  i 不区分大小写

● exec 返回查询值
       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/i;
       alert(reCat.exec(data));  //Cat

● match  得到查询数组
       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/gi;
       var arrMactches = data.match(reCat)
       for (var i=0;i < arrMactches.length ; i++)
       {
            alert(arrMactches[i]);   //Cat  cat
       }

● search  返回搜索位置  类似于indexof
       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/gi;
       alert(data.search(reCat));  //23

● replace  替换字符  利用正则替换
       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/gi;
       alert(data.replace(reCat,"libinqq"));

● split  利用正则分割数组
       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /\,/;
       var arrdata = data.split(reCat);

for (var i = 0; i < arrdata.length; i++)
       {
            alert(arrdata[i]);
       }

● var reCat = /(mouse){2}/gi; //mousemouse

● 选取子串
    var sToMatch = "#123456789";
    var reNumbers = /#(\d+)/;
    reNumbers.test(sToMatch);
    alert(RegExp.$1); //(反向引用)

● 交换子串
    var sToChange = "1234 5678";
    var reMatch = /(\d{4}) (\d{4})/;
    var sNew = sToChange.replace(reMatch,"$2 $1");
    alert(sNew);

● 多行模式
    var data = " First second\n thind fourth\n fifth sixth";  
    var reCat = /(\w+)$/gm;   
    var arrdata = data.match(reCat);

for (var i = 0; i < arrdata.length; i++)
    {
        alert(arrdata[i]);
    }

————————————————————————————————————————————————————————————

■ JavaScript replace() 方法
● 去除字符串前后空格
replace(/(^\s*)|(\s*$)/g, "");

● jQuery trim()内部实现
str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');

● 兼容不支持trim()的浏览器
if (!String.prototype.trim){
    String.prototype.trim = function () {
        return this.replace(/(^[\s\n\t]+|[\s\n\t]+$)/g, "");
    }
}

————————————————————————————————————————————————————————————

JavaScript_正则表达式的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  3. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  4. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  7. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  8. JavaScript 正则表达式语法

    定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...

  9. [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...

随机推荐

  1. 机器学习算法(优化)之二:期望最大化(EM)算法

    EM算法概述 (1)数学之美的作者吴军将EM算法称之为上帝的算法,EM算法也是大家公认的机器学习十大经典算法之一.EM是一种专门用于求解参数极大似然估计的迭代算法,具有良好的收敛性和每次迭代都能使似然 ...

  2. php的正则表达式完全手册

    前言 正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感.只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题. 索引 1._引子 2. ...

  3. modelform 使用

    modelForm (1) model的知识点: class UserInfo(AbstractUser): tel = models.CharField(max_length=32) gender ...

  4. 基于EasyUI 快速搭建权限管理平台

    前言: 一.用户角色权限设计思路: <1>不同职责的人员,对于系统操作的权限应该是不同;<2>可以对“组”进行权限分配;<3>权限管理系统应该是可扩展的;<4 ...

  5. 『NiFi 学习之路』自定义 —— 组件的自定义及使用

    一.概述 许多业务仅仅使用官方提供的组件不能够满足性能上的需求,往往要通过高度可定制的组件来完成特定的业务需求. 而 NiFi 提供了自定义组件的这种方式. 二.自定义 Processor 占坑待续 ...

  6. ZOJ - 3229 Shoot the Bullet (有源汇点上下界最大流)

    题意:要在n天里给m个女生拍照,每个女生有拍照数量的下限Gi,每天有拍照数量的上限Di,每天当中每个人有拍照的上限Lij和Rij.求在满足限制的基础上,所有人最大能拍多少张照片. 分析:抛开限制,显然 ...

  7. cocosBuider 控件命名的坑

    这几天遇到了各种坑.... 各种控件名字问题.... bool CLevelLayer::onAssignCCBMemberVariable(cocos2d::CCObject * pTarget, ...

  8. python3 驱动 PyMySQL

    Python版本: 3.5.0 MySqlDB官网只支持Python3.4,  使用第三方库PyMysql连接Mysql数据库. https://pypi.python.org/pypi/PyMySQ ...

  9. sqlite常用的命令-增删改查

    一.查看版本信息: #sqlite3 -version 二.sqlite3常用命令 1.当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识: 2. ...

  10. 使用selenium前学习HTML介绍

    <!-- HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (mark ...