创建RegExp对象

一 RegExp对象介绍

每一条正则表达式模式对应一个RegExp实例,有两种方式可以创建RegExp对象的实例。下面分别对这两种方式进行介绍。
1 使用RegExp的显式构造函数。
语法:
new RegExp("pattern"[,"flags"]) //即 new RegExp(" 模式 "[," 标记 "])
2 使用RegExp的隐式构造函数,采用纯文本格式。
语法:
/pattern/[flags]
 
pattern部分为要使用的正则表达式模式文本,是必须的。
在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号括起来;
在第二种方式中,pattern部分嵌套在两个“/”之间,不能使用引号。
flags部分设置正则表达式的标志信息,是可选项。
如果设置flags部分,在第一种方式中,以字符串的形式存在;在第二种方式中,以文本的形式紧接在最后一个“/”字符之后。
flags可以是以下标志字符的组合。
  • g是全局标志。
如果设置了这个标志,对某个文本执行搜索和替换操作时,将对文本中所有匹配的部分起作用。
如果不设置这个标志,则仅搜索和替换最早匹配的内容。
  • i是忽略大小写标志。
如果设置了这个标志,进行匹配比较时,将忽略大小写。
  • m是多行标志。
如果不设置这个标志,那么元字符“^”只与整个被搜索字符串的开始位置相匹配,而元字符“$”只与被搜索字符串的结束位置相匹配。
如果设置了这个标志,“^”还可以与被搜索字符串中的“\n”或“\r”之后的位置(即下一行的行首)相匹配,而“$”还可以与被搜索字符串中的“\n”或“\r”之后的位置(即下一行的行尾)相匹配。
注意:文本格式中的参数不要使用引号标记,而构造器函数的参数则要使用引号标记。所以下面的表达式建立同样的正则表达式:
/ab+c/i
new RegExp("ab+c","i")
当使用构造函数的时候,必须使用正常的字符串避开规则(在字符串中加入前导字符\)是必须的。例如,下面的两条语句是等价的:
re = new RegExp("\\w +")
re = /\w+/
 
二 代码
<html>
<head>
<title>创建正则表达式 </title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language = "JavaScript">
var myString="如何创建正则表达式";
var myregex = new RegExp("创建");  // 创建正则表达式
if (myregex.test(myString))
{
	document.write("已创建正则表达式,并找到了指定的模式!");
}
else
{
 	document.write("已创建正则表达式,但未找到匹配的模式。");
}
document.write("<BR>")
<script language="javascript">
 var re1 = new RegExp("\\d{2}");
 var re2 = /\d{2}/;
 alert("re1="+re1+"\nre2="+re2);
</script>
</script>
</head>
<body></body>
</html>
 
三 运行结果
已创建正则表达式,并找到了指定的模式!
re1=/\d{2}/ re2=/\d{2}/ 
 
四 运行说明
由于JavaScript字符串中的“\”是一个转义字符,因此,使用显式构造函数创建RegExp实例对象时,应将原始正则表达式中的“\”用“\\”替换。
由于正则表达式模式文本中的转义字符也是“\”,如果正则表达式中要匹配原义字符“\”,在正则表达式模式文本中要以“\\”来表示,当使用显式构造函数的方式创建RegExp实例对象的时候,就需要使用“\\\\”来表示原义字符“\”。例如:
var re = new RegExp("\\\\")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值