1、正则表达式test方法

var text = "cat, bat, sat, fat";
var pattern = /.at/; if (pattern.test(text)){
alert("The pattern was matched.");
}

2、正则的toString()方法

 var pattern = new RegExp("\\[bc\\]at", "gi");
alert(pattern.toString()); // /\[bc\]at/gi
alert(pattern.toLocaleString()); // /\[bc\]at/gi

3、RegExp Constructor(构造函数) Properties(属性)

  var text = "this has been a short summer";
var pattern = /(.)hort/g; /*
* Note: Opera doesn't support input, lastMatch, lastParen, or multiline.
* Internet Explorer doesn't support multiline.
*/
if (pattern.test(text)){
alert(RegExp.input); //this has been a short summer
alert(RegExp.leftContext); //this has been a
alert(RegExp.rightContext); // summer
alert(RegExp.lastMatch); //short
alert(RegExp.lastParen); //s
alert(RegExp.multiline); //false
}
input      保存被搜索的字符串
index      保存匹配的首字符的位置
lastIndex     保存匹配的字符串下一个字符的位置
lastMatch     保存匹配到的字符串
lastParen     保存最后一个被匹配的字符串(最后一个括号内的内容)
leftContext    保存匹配字符串左边的内容
rightContext   保存匹配字符串右边的内容
$1~$9 保存最开始的9个子匹配(括号中的内容)
 var text = "this has been a short summer";
var pattern = /(.)hort/g; /*
* Note: Opera doesn't support short property names.
* Internet Explorer doesn't support multiline.
*/
if (pattern.test(text)){
alert(RegExp.$_); //this has been a short summer
alert(RegExp["$`"]); //this has been a
alert(RegExp["$'"]); // summer
alert(RegExp["$&"]); //short
alert(RegExp["$+"]); //s
alert(RegExp["$*"]); //false
}
* 分为长属性名和短属性名
* input $_ 最近一次要匹配的字符串
* lastMatch $& 最近一次的匹配项
* lastParen $+ 最近一次匹配的捕获组
* leftContext $` input字符串中lastMatch之前的文本
* multiline $* 布尔值,表示是否所有表达式都使用多行模式。
* rightContext $' input字符串中lastMatch之后的文本

4、正则$1.....$9

 var text = "this has been a short summer";
var pattern = /(..)or(.)/g; if (pattern.test(text)){
alert(RegExp.$1); //sh
alert(RegExp.$2); //t
}
每当产生一个带括号的成功匹配时,$1...$9 属性的值就被修改。
可以在一个正则表达式模式中指定任意多个带括号的子匹配,但只能存储最新的九个。

5、RegExp exec() 

 var text = "mom and dad and baby";

        var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text); alert(matches.index); //0 第一个被匹配到的位置
alert(matches.input); //"mom and dad and baby" 匹配的原始字符串
alert(matches[0]); //"mom and dad and baby" 匹配的第一个值
alert(matches[1]); //" and dad and baby" 匹配的第二个值
alert(matches[2]); //" and baby" 匹配的第三个值
 var text = "cat, bat, sat, fat";
var pattern1 = /.at/; var matches = pattern1.exec(text);
alert(matches.index); //
alert(matches[0]); //"cat"
alert(pattern1.lastIndex);// matches = pattern1.exec(text);
alert(matches.index); //
alert(matches[0]); //"cat"
alert(pattern1.lastIndex);// var pattern2 = /.at/g; var matches = pattern2.exec(text);
alert(matches.index); //
alert(matches[0]); //"cat"
alert(pattern2.lastIndex);// matches = pattern2.exec(text);
alert(matches.index); //
alert(matches[0]); //"bat"
alert(pattern2.lastIndex);//

6、RegExp实例属性

  var pattern1 = /\[bc\]at/i;

        alert(pattern1.global);     //false  //是否设置全局查找
alert(pattern1.ignoreCase); //true 是否忽略大小写
alert(pattern1.multiline); //false 是否设置多行查找
alert(pattern1.lastIndex); //0 一个整数,标示开始下一次匹配的字符位置。
alert(pattern1.source); //"\[bc\]at" 正则表达式的源文本。 var pattern2 = new RegExp("\\[bc\\]at", "i"); alert(pattern2.global); //false
alert(pattern2.ignoreCase); //true
alert(pattern2.multiline); //false
alert(pattern2.lastIndex); //
alert(pattern2.source); //"\[bc\]at"

javascript 学习总结(六)RegExp对象的更多相关文章

  1. JavaScript学习笔记-正则表达式(RegExp对象)

    正则表达式(RegExp对象)   1.正则表达式字面量,在脚本加载后编译.若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译: 2.使用构造函数创建的RegExp,提供了 ...

  2. Javascript学习6 - 类、对象、继承

    原文:Javascript学习6 - 类.对象.继承 Javasciprt并不像C++一样支持真正的类,也不是用class关键字来定义类.Javascript定义类也是使用function关键字来完成 ...

  3. JavaScript学习06 JS事件对象

    JavaScript学习06 JS事件对象 事件对象:当事件发生时,浏览器自动建立该对象,并包含该事件的类型.鼠标坐标等. 事件对象的属性:格式:event.属性. 一些说明: event代表事件的状 ...

  4. JavaScript:学习笔记(9)——Promise对象

    JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...

  5. JavaScript:学习笔记(10)——XMLHttpRequest对象

    JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...

  6. Javascript学习笔记——操作浏览器对象

    Javascript学习笔记 目前尝试利用javascript去对于一个浏览器对象完成一系列的访问及修改, 浏览器是网页显示.运行的平台,常用的浏览器有IE.火狐(Firefox).谷歌(Chrome ...

  7. javascript学习笔记02--面向对象学习

    js面向对象编程 1.  javascript 是一种基于对象的编程    object-based(基于对象):遇到的所有对象都是对象2.javascript没有类class,但是有新的原型对象,习 ...

  8. JavaScript学习笔记之原型对象

    本文是学习<JavaScript高级程序设计>第六章的笔记. JS中,便于批量创建对象的三种模式: 1.工厂模式:用一个函数封装创建对象的细节,传入必要的参数,在函数内部new一个对象并返 ...

  9. JavaScript学习总结(六)——前端模块化开发

    早期的javascript版本没有块级作用域.没有类.没有包.也没有模块,这样会带来一些问题,如复用.依赖.冲突.代码组织混乱等,随着前端的膨胀,模块化显得非常迫切. 前端模块化规范如下: 一.前端模 ...

  10. JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

    一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...

随机推荐

  1. strchr,wcschr 及strrchr, wcsrchr,_tcschr,_tcsrchr函数

           strchr,wcschr 及strrchr, wcsrchr,_tcschr,_tcsrchr函数 (1) char *strchr( const char *string, int ...

  2. 批量创建采购订单 BAPI_PO_CREATE1

    *&---------------------------------------------------------------------* *& REPORT  ZMM_PO_C ...

  3. Sql示例说明如何分组后求中间值--【叶子】

    原文:Sql示例说明如何分组后求中间值--[叶子] 这里所谓的分组后求中间值是个什么概念呢? 我举个例子来说明一下: 假设我们现在有下面这样一个表: type        name price -- ...

  4. HDOJ 3480 Division

    斜率优化DP. ... 对数组排序后.dp[i][j]表示对前j个物品分i段的最少代价,dp[i][j]= min{ dp[i-1][k]+(a[k+1]-a[j])^2 }复杂度m*n^2     ...

  5. BZOJ 1823 JSOI 2010 盛宴 2-SAT

    标题效果:有着n材料的种类,m陪审团. 每种材料具有两种不同的方法.每个法官都有两个标准.做出来的每一个法官的菜必须至少满足一个需求. 问:是否有这样一个程序. 思考:2-SAT经典的内置图形问题.因 ...

  6. Preemption Context Switches 和 Synchronization Context Switches

    Preemption Context Switches测量操作系统任务调度线程处理器上执行的次数,以及切换到较高-priority螺纹,数. Synchronization context switc ...

  7. Gallatin(大陆版)Office365中Exchange Online混合部署功能已经能够使用了

    经过測试,Exchange混合部署已经能够使用了 前置条件: 本机至少须要一台Exchange Server 2013作为混合部署server 须要一个公网域名 domian.com,能够和内部域名不 ...

  8. 随笔 - Internet缓存文件

    Internet缓存文件 本文地址: http://blog.csdn.net/caroline_wendy 互联网上全部的使用记录, 图片, 音乐, 视频, 都会缓存在本地. 1. 位置: IE-& ...

  9. ACM-凸多边形的计算几何——hrbust1429

    凸多边形 称号:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1429 Descri ...

  10. mariadb 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    [root@localhost /]# systemctl stop mariadb.service[root@localhost /]# mysqld_safe --user=mysql --ski ...