草本枝稼

正则表达式的使用

正则表达式对象是本对象包含正则表达式模式以及表明如何应用模式的标志。使用方法:
语法 1

re = /pattern/[flags]
语法 2
re = new RegExp("pattern",["flags"])
其中re是必选项。将要赋值为正则表达式模式的变量名。
Pattern是必选项。要使用的正则表达式模式。如果使用语法 1,用 "/" 字符分隔模式。如果用语法 2,用引号将模式引起来。
flags是可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用,可用的有:

  • g (全文查找出现的所有 pattern)
  • i (忽略大小写)
  • m (多行查找)


说明
不要将正则表达式对象跟全局 RegExp 对象混淆。尽管听起来像是一回事,但它们是截然不同的。正则表达式对象的属性只包含一个正则表达式的信息,而全局 RegExp 对象的属性包含了不断更新的每一个匹配出现的信息。

正则表达式对象保存用于查找字符串中的字符组合时的模式。创建正则表达式对象后,或者它被传递给字符串方法,或者字符串被传递给一个正则表达式方法。有关最近进行查找的信息被保存在全局 RegExp 对象中。

当预先知道查找字符串时用语法 1。当查找字符串经常变动或不知道时用语法 2,比如由用户输入得到的字符串。

在使用前 pattern 参数被编译为内部格式。对语法 1 来说,pattern 在该脚本被装载时被编译。对语法 2 来说,pattern 在使用前,或调用 compile 方法时被编译。

示例

//邮箱格式检测,使用格式1

function MailCheck()
{
   var checkMail = /^(\w|-)+[@]{1}(\w|-)+[.]{1,3}(\w)+$/;
  if(!checkMail.test(document.register_info.email.value))
                {
                        alert("非法的电子邮箱!");
                        document.formname.email.focus();
                        return false;
                }
}

 

以下使用格式2
下面的示例创建一个包含正则表达式模式及相关标志的对象(re),向您演示正则表达式对象的用法。在本例中,作为结果的正则表达式对象又用于 match 方法中:

function MatchDemo(){
   var r, re;                     // 声明变量。
   var s = "The rain in Spain falls mainly in the plain";
   re = new RegExp("Spain","i");  // 创建正则表达式对象。
   r = s.match(re);               // 在字符串 s 中查找匹配。
   return(r);                     // 返回匹配结果。
}
 

posted on 2009-03-11 23:19  林声歌  阅读(111)  评论(0)    收藏  举报