javascript学习笔记(十二) RegExp类型介绍_Javascript教程-查字典教程网
javascript学习笔记(十二) RegExp类型介绍
javascript学习笔记(十二) RegExp类型介绍
发布时间:2016-12-30 来源:查字典编辑
摘要:1.匹配模式标记:g------表示全局模式,而不是发现第一个匹配成功就立刻结束i-------表示不区分大小写模式m-----表示多行匹配...

1.匹配模式标记:

g ------ 表示全局模式,而不是发现第一个匹配成功就立刻结束

i ------- 表示不区分大小写模式

m ----- 表示多行匹配,一行结束时向下一行继续匹配

复制代码 代码如下:

//匹配第一个bat 或cat,不区分大小写

var pattern1 = /[bc]at/i

var pattern2 = new RegExp("[bc]at","i"); //同上

使用RegEXp是字面量模式要转换成字符串

/[bc]at/ =======> "[bc]at"

/.at/ ==========> ".at"

/name/age/ ======> "name/age"

/d.d{1,2}/ ======> "d.d{1,2}"

/whello123/ ====>"whello123

2.RegExp实例属性

global —— 布尔值,表示是否设置了g 标志

ignoreCase —— 布尔值,表示是否设置了i 标志

multiline —— 布尔值,表示是否设置了m 标志

lastIndex —— 整数,表示开始搜索下一个匹配项的位置

source —— 字面量形式的字符串

复制代码 代码如下:

var pattern2 = new RegExp("[bc]at","i");

alert(pattern2.source); //"[bc]at"

3.RegExp实例方法

exec()方法 接受一个参数,即应用正则表达式的字符串,

返回数组和两个属性index和input,数组第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串

复制代码 代码如下:

var text "mom and dat 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"

非全局模式时每次调用exec()返回的都是第一次匹配的项

全局模式时每次调用ecec()返回字符串的下一个匹配项,lastIndex的值会增加

test()方法 接受一个参数,即应用正则表达式的字符串,匹配返回 true 否则返回 false

复制代码 代码如下:

var text = "000-00-0000";

var pattern = /d{3}-d{2}-d{4}/;

if (pattern.test(test)) {

alert("匹配!");

}

4.RegExp 构造函数属性

复制代码 代码如下:

var text = "this has been a short summer";

var pattern = /(.)host/g;

if (pattern.test(text)){

alert(RegExp.input); //this has been a short summer 最近一次要匹配的字符串,等价于RegExp.$_ ,opera不支持

alert(RegExp.lastMatch); //short 最近一次的匹配项,等价于RegExp["$&"] ,opera不支持

alert(RegExp.lastParen); //s 最近一次匹配的捕获组,等价于RegExp["$+"] ,opera不支持

alert(RegExp.leftContext); //this has been a 匹配项前的文本,等价于RegExp["$`"]

alert(RegExp.rightContext); // summer 匹配项后的文本,等价于RegExp["$‘"] ,

alert(RegExp.multiline); //false 是不是多行模式,等价于RegExp["$*"] ,opera和IE都不支持

}

RegExp.$1 …… RegExp.$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

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类