JS--RegEXp类型

ECMAscript通过RegExp类型来支持正则表达式。

语法:

var expression = / pattern / flags;

正则表达式的匹配模式支持下列3个标志。

1.g: 表示全局模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。

2.i: 表示不区分大小写模式,即在确定匹配项时忽略模式和字符串的大小写。

3.m: 表示多行模式,即在到达一行文本末尾时还会继续查找下一行是否存在于模式匹配的项。

创建正则表达式有两种方式:

1.字面量形式

例如:

var pattern = /at/g;

2.使用RegExp构造函数

例如:

var pattern = new RegExp("[bc]at", "g");

注:传给RegExp构造函数的两个参数都是字符串,不能把正则表达式字面量传递给构造函数,所以在某些情况下要对字符进行双重转义。所有元字符都要进行双重转义。

例如:

/\[bc\]at/                    "\\[bc\\]at"
/\w\\hello\\123/          "\\w\\\\hello\\\\123"  

注:使用正则表达式字面量和RegExp构造函数创建的正则表达式是不一样的。在ECMAscript3中, 正则表达式字面量始终会共享一个同一个RegExp实例,而RegExp构造函数创建的每一个新RegExp实例都是一个新实例。ECMAscript5明确规定,使用正则表达式字面量必须像直接调用RegExp构造函数一样,每次创建一个新实例。

RegExp实例属性:

1.global: 布尔值,表示是否设置了g标志。

2.ignoreCase: 布尔值,表示是否设置了i标志。

3.lastIndex:整数,表示搜索下一个匹配项的字符位置,从0算起。

4.multiline: 布尔值,表示是否设置了m标志。

5.source: 正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

RegExp实例方法:

1.exec(), 该方法专门为捕获组而设计的。exec()接受一个参数,既要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。返回的数组虽然是Array的实例,但是其包含两个额外的属性:index和input。其中index表示匹配项在字符串中的位置,为input表示应用正则表达式的字符串。在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果没有捕获组,则该数组只包含一项)。

例如:

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"

注: 设置g标志与否,会影响匹配项的搜索个数,和lastIndex属性。

2.test(),它接受一个字符串参数。在模式与该参数匹配的情况下返回true;否则,返回false。

支持正则表达式的String对象方法:

search()

match()

replace()

split()

时间: 2024-10-21 18:01:53

JS--RegEXp类型的相关文章

js中RegExp类型

ECMAScript通过RegExp类型来支持正则表达式. var expression = / pattern / flag ; pattern可以是任意的正则表达式.每个正则都带有标志,用以正则表达式的行为.正则的匹配模式支持三个标志: g:表示全局(global)模式,即模式被应用于所有字符串,而非在发现第一个匹配是立即停止: i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写: m:表示多行(multiline)模式,即在到达一行文本末

【JS笔记】5.4 RegExp类型

RegExp类型包含信息:模式和标志 创建RegExp对象: 方法一: 字面量形式 var expression = /pattern/flags; flags: g:全局模式,模式将被应用于所有字符串,而非发现第一个匹配项时停止 i:不区分大小写(ignorecase) m:(multiline)多行模式,到达一行文本末尾时还会继续查找下一行 方法二: RegExp(patternString[, flagsString])构造函数 var pattern2 = new RegExp("\\[

RegExp类型,单体内置对象

1.RegExp类型:  1)什么是正则表达式:RegExp    --是一种规则,模式    --强大的字符串匹配工具    --创建:    --使用RegExp构造函数创建:var re=new RegExp('a','i');    --使用字面量创建:var re=/a/i;    //i--ignore表示忽略大小写 2)正则表达式里面的字符:    1)修饰符      --i:执行对大小写不敏感的匹配.      --g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)  

高程5.4 RegExp类型

ECMAScript通过RegExp类型来支持正则表达式. 使用下面类似Perl的语法,就可以创建一个正则表达式. var expression=/pattern/flags; 其中的模式(pattern)部分可以是任何简单的或复杂的正则表达式,可以包含字符类,限定符,分组,向前查找以及反向引用. 每个正则表达式都可带有一或多个标志(flags),用以标明正则表达式的行为. 正则表达式的匹配模式支持下面3个标志. g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配

引用类型-RegExp类型

JavaScript高级程序设计(第三版)笔记-第五章-RegExp类型 定义正则表达式有两种方式 1.用字面量形式定义正则表达式: ver expression = /patterns/flags; patterns:可以是任何简单或者复杂的正则表达式 flags: g:表示全局 i:表示不区分大小写 m:表示多行模式,在到达一行的末尾时还会继续查找下一行 var patterns1 = /at/g;//匹配字符中所有“at”的实例 var patterns2 = /[bc]at/i;//匹配

JS—变量类型

<html> <head> <title>03-JS变量类型</title> <!-- 设置编码 --> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script type="text/javascript"> /*java中的变量分类: 基本数据类型 引用数据类型 js中

为JS字符类型添加trim方法

JS字符串本身并不没有提供常用的trim方法,我们可以通过修改String原形来添加此方法,我们就可以直接调用此方法了: String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g, '')} String.prototype.leftTrim = function(){return this.replace(/(^\s*)/g, '')} String.prototype.rigthTrim = functio

JavaScript:RegExp类型

JavaScript通过RegExp类型来支持正则表达式.语法: var exepression = /pattern/flags; 其中,pattern可以任意的正则表达式,可以包含字符类.限定符.分组.向前查找以及反向引用.每一个正则表达式都可带一个或多个标志,用于标明正则表达式的行为. g:表示全局模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止 i:表示不区分大小写模式,即在匹配项时忽略模式与字符串的大小写 m:表示多行模式,即到达一行文本末尾时还会继续查找下一行是否存

JS对象类型的确定

JS是松散类型的语言,这一点JS的对象表现得尤为突出.那么如何来确定JS对象的具体类型呢? 首先,我们可以使用typeof运算符确定其基本类型(number,object,function,undefined).如果typeof运算符返回object我们再使用instanceof来确定该对象是否属于某个具体类型. 注意:typeof null得到object,而typeof undefined得到undefined,typeof 数组对象得到object,typeof 函数得到function.

RegExp类型

RegExp类型 ECMScript是通过RegExp类型来支持正则表达式. 有两种创建正则表达式的方式: (1)字面量形式: var expression=/pattern/flags; (2)使用RegExp构造函数: var expression=new RegExp("pattern","flags"); 其中,要特别注意的是在构造函数中的字符转义和字面量形式中的字符转义,稍后有提到. pattern可以是任何简单或者复杂的正则表达式,可以包含字符类.限定符