目录

创建RegExp对象

1.使用RegExp的显式构造函数

2.使用RegExp的隐式构造函数,采用纯文本格式

RegExp对象的属性

静态属性:

index属性:

input属性:

lastIndex属性:

lastMath属性:

lastParen属性:

leftContext属性:

rightContext属性:

$1...$9属性:

实例属性:

global属性:

ignoreCase属性:

multiline属性:

source属性:

RegExp对象的方法

1.exec()方法

语法:rgExp.exec(str)

rgExp:

str:

例子:

2.test()方法

语法:rgexp.test(str)

例子:


创建RegExp对象

每一条正则表达式模式对应一个RegExp实例,有两种方式可以创建RegExp对象的实例。

1.使用RegExp的显式构造函数

语法:new RegExp("pattern"[,"flags"])    //即new RegExp(" 模式 "[," 标记 "])

2.使用RegExp的隐式构造函数,采用纯文本格式

语法:/pattern/[flags]

pattern部分为要使用的正则表达式模式文本,是必选项。

flags部分设置正则表达式的标志信息,是可选项。如果设置flags部分,在第一种方式中,以字符串形式存在;在第二种方式中,以文本的形式紧接在最后一个‘/’字符之后。flags可以是一下标志字符的组合。

g是全局标志。如果设置了这个标志,对某个文本执行搜索和替换操作时,将对文本中所有匹配的部分起作用。如果不设置这个标志,则仅搜索和替换最早匹配的文本内容。

i是忽略大小写标志。如果设置了这个标志,进行匹配时将忽略大小写。

m是多行标志。如果不设置这个标志,那么元字符‘^’只与整个被搜索字符串的开始位置相匹配。而元字符‘$’只与整个被搜索字符串的结束位置相匹配。

RegExp对象的属性

RegExp对象的属性分为静态属性和实例属性。

静态属性:

RegExp对象的静态属性包括index、input、lastIndex、lastMath、lastParen、leftContext、rightContext以及$1...$9。

index属性:

是当前表达式模式首次匹配内容的开始位置,从0开始计数。其初始值为-1,每次匹配成功,index属性都会随之改变。

input属性:

返回当前所作用的字符串,可以简写为$_,初始值为空字符串。

lastIndex属性:

是当前表达式模式首次匹配内容中最后一个字符的下 一个位置,从0 开始计数,常被作为继续搜索时的起始位置,初始值为1,表示从起始位置开始搜索,每次成功匹配时,lastIndex属性值都会随之改变。

lastMath属性:

是当前表达式模式的最后一个匹配字符串,可以简写为$&。其初始值为空字符串("")。在每次成功匹配时,lastMatch 属性值都会随之改变。

lastParen属性:

如果表达式模式中有括起来的子匹配,是当前表达式模式中最后的子匹配所匹配到的子字符串,可以简写为$+。其初始值为空字符串("")。每次成功匹配时,lastParen 属性值都会随之改变。

leftContext属性:

是当前表达式模式最后一个匹配字符串左边的所有内容,可以简写为$’(其中'`'为键盘上Esc键下边的反单引号)。初始值为空字符串("")。每次成功匹配时,其属性值都会随之改变。

rightContext属性:

是当前表达式模式最后一个匹配字符串右边的所有内容,可以简写为$’(其中'`'为键盘上Esc键下边的反单引号)。初始值为空字符串("")。每次成功匹配时,其属性值都会随之改变。

$1...$9属性:

这些属性是只读的。如果表达式模式中有括起来的子匹配,$1..$9 属性值分别是第1~9个子匹配所捕获到的内容。如果有超过9个以上的子匹配,$1..$9属性分别对应级后的9个子匹配。在一个表达式模式中,可以指定任意多个带括号的子匹配,但RegExp对象只能存储最后的9个子匹配的结果。在RegExp实例对象的一些方法所返回的结果数组中, 可以获得所有圆括号内的子匹配结果。

实例属性:

RegExp的实例有几个只读的属性,其中global表示是否为全局匹配,ignoreCase 表示是否忽略大小写,mutiline表示是否为多行匹配,source 是正则式的源文本,如“/[ab]/g"”的源文本就是“[ab]"。另外还有“ 个可写的属性是lastIndex, 表示下次执行匹配时的起始位置。下面对这几种属性进行详细说明。

global属性:

返回创建RegExp对象实例时指定的global标志(g) 的状态。如果创建RegExp对象实例时设置了g标志,该属性返回true,  否则返回false,默认值为false.

ignoreCase属性:

返回创建RegExp对象实例时指定的ignoreCase标志(i)的状态。如果创建RegExp对象实例时设置了i标志,该属性返回true,否则返回false,默认值为false.

multiline属性:

返回创建RegExp对象实例时指定的multiline 标志( m)的状态。如果创建RegExp对象实例时设置了m标志,该属性返回tnue,否则返回false, 默认值为false.

source属性:

返回创建RegExp对象实例时指定的表达式文本字符串。

RegExp对象的方法

1.exec()方法

exec()方法用正则表达式模式在字符串中运行查找,并返回包含该查询结果的一个数组。

语法:rgExp.exec(str)

rgExp:

必选项。包含正则表达式模式和可用标志的正则表达式对象。

str:

必选项。要在其中执行查找的Sring对象或字符串文字。如果exec()方法没有找到匹配,则返回null;如果找到匹配,则exec()方法返回一个数组, 并且更新全局RegExp对象的属性,以反映匹配结果。数组的0元素包含了完整的匹配,而第1~n元素中包合的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志(g) 的match()方法。

如果为正则表达式设置了全局标志,exec()方法从以lastIndex的值指示的位置开始查找:如果没有设置全局标志,exec()方法忽略lastIndex的值,从字符串的起始位置开始搜索。
exec()方法返回的数组有3个属性,分别是input、index和lastIndex。input属性包含了整个被查找的字符串。index属性中包含了整个被查找字符串中匹配的子字符串的位置。lastIndex属性包含了匹配中最后一个字符串的下一个位置。

例子:

        <script language="JavaScript">function RegExpTest(){var src="I'm a good man";//创建正则表达式模式var re=/\w+/g;    var arr;while((arr=re.exec(src))!=null){document.write(arr.index+"-"+arr.lastIndex+arr+"\t");}}document.write(RegExpTest());</script>  

2.test()方法

test()方法返回一个Boolean值,指出在被查找的字符串中是否存在模式。

语法:rgexp.test(str)

例子:

        <script language="JavaScript">function TestDemo(re,s){var s1; //声明变量//检查字符串是否存在正则表达式if(re.test(s)){   //测试是否存在s1 = "包含";  //s包含模式}else{s1="不包含";  //s不包含模式}return("'"+s+"'"+s1+"'"+re.source+"'");}document.write(TestDemo(/boy/,"I am a good boy"));</script>   

JavaScript学习(十三)---RegExp对象相关推荐

  1. JavaScript强化教程—— RegExp 对象

    为什么80%的码农都做不了架构师?>>>    本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 --RegExp 对象   RegExp ...

  2. JavaScript学习笔记:对象

    JavaScript学习笔记:对象 1.声明对象 (1)字面量对象 <!DOCTYPE html> <html lang="en"> <head> ...

  3. JavaScript学习笔记之对象及继承

    JavaScript学习笔记之对象及继承 对象属性 ES5中有两种属性,数据属性和访问器属性. 数据属性包括[[writable]](能否修改属性的值).[[value]]等等: 访问器属性包括[[C ...

  4. JavaScript学习笔记——BOM_window对象

    javascript浏览器对象模型-windwo对象 BOM Browser Object Model window对象 是BOM中所有对象的核心. 一.属性 1.(位置类型-获得浏览器的位置) IE ...

  5. JavaScript学习随记——对象

    JS中对象基本使用 <script type="application/javascript" charset="utf-8">//Objcet 所 ...

  6. 小汤学编程之JavaScript学习day04——自定义对象、原型与原型链、BOM

    一.自定义对象 1.对象的定义     2.对象的使用 二.原型与原型链 1.JS的继承结构图     2.关键点 三.BOM 1.window对象     2.document对象     3.lo ...

  7. JavaScript学习笔记-JSON对象

    JSON 是一种用来序列化对象.数组.数值.字符串.布尔值和 null 的语法.它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 ...

  8. javascript学习-创建json对象数据,遍历

    之前我已经有讲过后台返回json数据到前台,并在前台遍历json数据. 这里讲下直接在JS里创建JSON数据,然后遍历使用~ 创建代码例如以下:(创建的是JSON对象) var YearSelect ...

  9. JavaScript 学习笔记— —Date对象

    一.获取时间 function toTwo(n){return n<10 ? '0'+n :''+n;}function getTime(){var objDate=new Date(); // ...

  10. JavaScript:学习笔记(3)——正则表达式的应用

    JavaScript:正则表达式的应用 应用正则表达式对象RegExp 创建正则表达式 JavaScript中使用RegExp对象来表述一个正则表达式.使用正则表达式之前首先要创建一个RegExp对象 ...

最新文章

  1. 25个Linux性能监控工具
  2. python spark 求解最大 最小 平均
  3. LIS(最大上升子序列)
  4. 部门角色权限rbac_k8s十 | 一文读懂基于角色的权限控制RBAC
  5. c# nullable类型有什么用
  6. 【小白学习PyTorch教程】六、基于CIFAR-10 数据集,使用PyTorch 从头开始​​构建图像分类模型...
  7. Python FastApi:快速建立docker容器/挂载共享文件夹/导入导出
  8. android 5.0状态栏下载地址,Android沉浸式状态栏(5.0以上系统)
  9. 音乐计算机怎么用,如何利用电脑录制自己的歌曲(音乐)
  10. 11年潜心研究产品 全屋智能品牌Aqara终于要开发布会了
  11. 假如王撕葱是程序员。。。
  12. 《简明 PHP 教程》03 第一步
  13. CentOS 6.5使用本地光盘做yum源
  14. 关于jquery的取消阻止默认事件
  15. 广度(宽度)优先搜索思路总结
  16. CDOJ--1012
  17. HFSS阵列天线仿真
  18. 电脑如何录制游戏视频
  19. 树莓派python通过websockets使用调用Leapmtion
  20. win10下装黑苹果双系统_笔记本加装固态打造黑苹果+WIN双系统,雷克沙NS100升级体验...

热门文章

  1. Arcglobe三维信息系统开发常见问题
  2. python入门004~创建属于自己的第一个python3项目~基础知识的讲解
  3. 一份非常详尽的 Objective-C 到 Swift 的迁移指南
  4. JavaScript基础学习--事件代理
  5. 互联网跨界营销掘金“大数据”
  6. iOS开发-Certificates、Identifiers和Profiles详解
  7. 学习笔记------tag文件
  8. Quartz.NET在ASP.NET 中使用
  9. spring-java.lang.stackOverFlowError
  10. 微软针对中国中小企业推出打包服务