14.2 如何使用正则表达式
为了让读者对正则表达式能有一个感性的认识,下面列举一个从指定字符串中搜索子字符串“abc”的实例,其代码如源程序14.1所示。
//源程序14.1
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html140/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Sample Page!</title>
<script language="JavaScript" type="text/javascript">
<!--
function test1(obj)
{
var myString=obj.test.value; //获得输入的文本值
var myregex=new RegExp("abc"); //创建正则表达式
if (myregex.test(myString)) //调用test方法
alert("\n搜索结果:\n\n目标字符串中存在子串''abc''!");
else
alert("\n搜索结果:\n\n目标字符串中不包含子串''abc''!");
}
-->
</script>
</head>
<body>
<center>
<p>判断输入的字符串中是否包含子串"abc"</p>
<p>目标字符串:
<form onSubmit="return test1(this);">
<input type="text" name="test" value="target string">
<input type="submit" value="提交">
</form></p>
</center>
</body>
</html>
程序运行后,结果页面如图14.1所示。

图14.1 程序运行后的原始页面
若在文本框内输入字符串“yangshuiqing”,并单击“提交”按钮后,将弹出警告框如图14.2所示。
若在文本框输入字符串“xiao yang abc”,并单击“提交”按钮后,将弹出警告框如图14.3所示。

图14.2 输入字符串“yangshuiqing” 图14.3 输入字符串“xiao yang abc”
在上述代码中使用正则表达式构造函数RegExp()生成正则表达式实例myregex,并调用其test()方法检测目标字符串:
var myregex = new RegExp("abc"); //创建正则表达式
if (myregex.test(myString)) //调用test方法
综合以上实例可知,使用正则表达式进行相关判断可分为以下三步。
创建正则表达式:在JavaScript中,RegExp对象被专门用来完成有关正则表达式的创建以及后续操作,每一个正则表达式模式对应一个RegExp对象实例。RegExp对象将在后续小节进行专门叙述。
调用相关对象的方法,得到匹配结果:操作正则表达式的方法有多种,如RegExp对象的test()、exec()、compile()方法以及String对象的search()、match()、replace()、split()方法等。这些方法将在后续小节中详细讨论,并给出相应的实例。
对结果进行操作:在第二步实现相应的操作并获得匹配结果后,开发者可以根据结果进行相关操作,如产生警告框、报错、重置等。






