规则
开头结尾
    "^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. JS浮点计算问题

    问题 用js进行浮点数计算,结果可能会“超出预期”,大部分计算结果还是对的,但是我们可不想在计算这么严谨的事情上还有意外的惊喜.比如: 0.3 + 0.6 = 0.8999999999999999 0 ...

  2. kettle中的karaf设置

    Spoon.sh设置-Dpentaho.karaf.root.copy.dest.folder=$PENTAHO_KARAF_ROOT -Dpentaho.karaf.root.transient=f ...

  3. 自定义admin管理工具(stark组件)

    自定义admin管理工具(stark组件) 创建项目 了解了admin的功能后,我们可以开始仿照admin编写我们自己的管理工具stark组件 首先创建一个新的项目,并创建三个app stark就是我 ...

  4. Zen-cart产品页面随机调用Wordpress文章

    <?php require('./wordpress所在目录/wp-blog-header.php'); ?><?php$rand_posts = get_posts('number ...

  5. PHP实现excel导出

    首先去下载PHPExcel类,地址http://phpexcel.codeplex.com/ 方法如下第一步引入这个扩展类 Vendor('PHPExcel'); 第二部就是方法了,下面简单的实现方法 ...

  6. 如何下载java的jdk

    1.https://www.oracle.com/index.html 2.https://www.oracle.com/downloads/index.html 3.https://www.orac ...

  7. HDU 5963 朋友(树+博弈)

    #include<vector> #include<cstdio> #include<cstring> #include<algorithm> #def ...

  8. 基于HTML5 FileSystem API的使用介绍(转)

    FileSystem提供了文件夹和文件的创建.移动.删除等操作,大大方便了数据的本地处理, 而且所有的数据都是在沙盒(sandboxed)中,不同的web程序不能互相访问,这就保证了数据 的完整和安全 ...

  9. exec-maven-plugin配置及使用

    背景: 如果你想在项maven生命周期内,运行一段java代码,或者一段独立的程序,或者说我们所指的预执行,初始化某些值,生成某些不能预先生成的文件.那么这样我们就可以使用exec-maven-plu ...

  10. vuex是什么?怎么用,例子

    什么是vuex? 官方的解释是:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 为什么要用 ...