正则表达式(RegExp对象)
 
1.正则表达式字面量,在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译;
2.使用构造函数创建的RegExp,提供了对正则表达式运行时的编译。主要用于当你知道正则表达式的模式会发生改变时,或者你事先并不了解它的模式或者是从其他地方(比如用户的输入),每次使用都会重新编译;
        var myRe = /d(b+)d/g;
        var myArray = myRe.exec("cdbbdbsbz");
如果你不需要访问正则表达式的属性,这个脚本通过另一个方法来创建myArray:
        var myArray = /d(b+)d/g.exec("cdbbdbsbz");
如果你想通过一个字符串构建正则表达式,那么这个脚本还有另一种方法:
        var myRe = new RegExp('d(b+)d', 'g');  //字符串内特殊字符需转义
或:var myRe = new RegExp(/d(d+)d/,'g')
        var myArray = myRe.exec("cdbbdbsbz");
 
RegExp属性:
RegExp.prototype.constructor 创建该正则对象的构造函数。
RegExp.prototype.global 是否开启全局匹配,也就是匹配目标字符串中所有可能的匹配项,而不是只进行第一次匹配。
RegExp.prototype.ignoreCase 在匹配字符串时是否要忽略字符的大小写。
RegExp.prototype.lastIndex 下次匹配开始的字符串索引位置,这个属性只有在使用g参数时可用
RegExp.prototype.multiline 是否开启多行模式匹配(影响 ^ 和 $ 的行为)。
RegExp.prototype.source 正则对象的源模式文本。在正则表达式创建时更新,不执行
RegExp.prototype.sticky (ES6)是否开启粘滞匹配。
 
RegExp方法:每次执行exec()、test()方法后,就立即自动将lastIndex设置下次匹配开始位置,而String的方法则总是将lastIndex重置为0
 
myRe.exec(str) 如果成功匹配,返回一个数组,并且更新正则表达式对象的属性。返回的数组包括匹配的字符串作为第一个元素,紧接着一个元素对应一个( )保存的子表达式匹配到的子串;如果匹配失败,exec 方法将返回 null。
        返回的数组属性:index指匹配到的字符位于原始字符串的基于0的索引值;input指原始字符串;
        更新后的正则表达式属性: lastIndex 下一次匹配开始的位置; source 正则模式的字符串;
 
myRe.test(str);  测试一个字符串中是否匹配,它返回true或false
 
 
使用正则表达式的方法
方法             描述
exec         一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回null)。
test          一个在字符串中测试是否匹配的RegExp方法,它返回true或false。
match       一个在字符串中执行查找匹配的String方法,它返回一个数组或者在未匹配到时返回null。
search      一个在字符串中测试匹配的String方法,它返回匹配到的位置索引,或者在失败时返回-1。
replace     一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。
split          一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的String方法。
 
正则表达式标志
标志     描述
g         全局搜索。
i          不区分大小写搜索。
m         多行搜索。'^','$'多行模式时匹配的开始或结束输入字符串中的每一行,而不是整个字符串的开始或结束
y         执行“粘性”搜索,匹配从目标字符串的当前位置开始,可以使用y标志
u         Unicode。将模式视为Unicode码位(code points)序列

JavaScript学习笔记-正则表达式(RegExp对象)的更多相关文章

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

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

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

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

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

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

  4. JavaScript学习笔记- 正则表达式常用字符集及方法

    正则表达式修饰符(修饰符 可以在全局搜索中不区分大小写) i(ignoreCase)执行对大小写不敏感的匹配 g (global)     执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) m( ...

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

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

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

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

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

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

  8. JavaScript学习笔记-正则表达式(语法篇)

    正则表达式的模式规则是由一个字符系列组成的,包括所有字母和数字在内;大多数的字符(所有字母和数字)都是按字符的直接量来描述带匹配的字符;一些具有特殊语义的字符按照其特殊语义来进行匹配,有些字符需要通过 ...

  9. 1.4(JavaScript学习笔记) window对象的属性及方法

    一.window对象 window对象代表当前窗口,所有全局对象都是windows的属性, 例如document是window的属性,window.document.writer("&quo ...

随机推荐

  1. hdu1269迷宫城堡(判断有向图是否是一个强连通图)

    1 /* 题意: 给你一个图,求这个有向图示否是一个强连通图(每两个节点都是可以相互到达的)! 思路1:按正向边dfs一遍,将经过的节点计数,如果记录的节点的个数小于n,那么就说明图按照正向边就不是连 ...

  2. java中变量运算细节 (2)

    /* 目的:测试变量的运算方式 结果:byte a, b, c; a = b+c; 或者 a = b+10 形如这种形式的算式, 等式的右边的运算结果默认的都是int型的!因为等式右边有变量, 编译器 ...

  3. Cocos2d-x 3.2 学习笔记(十六)保卫萝卜 游戏主循环与定时器

    保卫萝卜~想法一直存在于想法,实战才是硬道理!有想法就去实现,眼高手低都是空谈.   一.游戏主循环GameSchedule      主循环是游戏处理逻辑,控制游戏进度的地方,处理好主循环是很重要的 ...

  4. solr:快速开始

    本文已挪至  http://www.zhoujingen.cn/blog/8535.html 明年工作主要和搜索有关,在自己学习过程中分享让更多人受益是我一贯的做法,所以我会把对Solr的学习在这里与 ...

  5. express 框架之session

    一.什么是session? 最近在学习node.js 的express框架,接触到了关于session方面的内容.翻阅了一些的博客,学到了不少东西,发现一篇博文讲的很好,概念内容摘抄如下: Sessi ...

  6. Java魔法堂:内部类详解

    一.前言 对于内部类平时编码时使用的场景不多,比较常用的地方应该就是绑定事件处理程序的时候了(从C#.JS转向Java阵营的孩子总不不习惯用匿名内部类来做事件订阅:().本文将结合Bytecode对四 ...

  7. CocoaPods安装使用以及常见问题

    什么是CocoaPods CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方 ...

  8. Dapper学习 - Dapper.Rainbow(一) - Create

    Dapper这个ORM有许多扩展, 我自己用过两种, 也算是比较主流的两种, Rainbow和Extension, 这里就先介绍下Rainbow吧, 毕竟这个先用, 当然, 由于我使用的是mysql数 ...

  9. javascript设计模式实践之代理模式--图片预加载

    图片的预加载就是在加载大图片前,先显示一个loading.gif,就算在网络比较慢的时候也能让人知道正在加载,总比啥反应都没有强. 下面这段代码就是预加载的一个简单的实现,假设先不处理加载图片时的on ...

  10. 使用ASP.NET MVC局部视图避免JS拼接HTML,编写易于维护的HTML页面

    以前使用ASP.NET WebForm开发时,喜欢使用Repeater控件嵌套的方式开发前台页面,这样就不用JS拼接HTML或者后台拼接HTML了,写出的HTML页面美观.简捷.易于维护,由于不用JS ...