我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > Asp邮件/FSO > 开门第二贴:正则表达式regular expression详述(二)
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
ASP教程十一、调试ASP脚本(10-23)
在JSP中访问数据库大全(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

开门第二贴:正则表达式regular expression详述(二) 

作者:佚名   来源:一亩三分地   点击:   日期:2007-03-28

     正则表达式详述(二)

    以下这些不是正则表达式的新增对象请参阅对应的JavaScript对象的属性    $_属性    参考input    $*属性
    参考multiline    $&属性    参考lastMatch    $+属性    参考lastParen    $`属性
    参考leftContext    $'属性    参考rightContext     compile方法    在脚本运行期间编译正则表达式对象
    属于RegExp的方法     在JavaScript 1.2, NES 3.0以上版本提供     语法:
    regexp.compile(pattern[, flags])    以数:    regexp    正则表达式的名称,可以是变量名或文字串。
    pattern    正则表达式的定义文本。    flags     如果指定的话,可以是下面其中的一个:    "g": 匹配所有可能的字串
    "i": 忽略大小写    "gi": 匹配所有可能的字串及忽略大小写    描述:
    使用compile方法来编译一个正则表达式 created with the RegExp constructor function。这样
就强制正则表达式只编译一次,而不是每次遇到正则表达式的时候都编译一次。当你确认正则表达式能
保持不变的时候可使用compile 方法来编译它(在获得它的匹配模式后),这样就可以在脚本中重复多次使用它。
    你亦可以使用compile 方法来改变在运行期间改变正则表达式。例如,假如正则表达式发生变化,
你可以使用compile方法来重新编译该对象来提高使用效率。
    使用该方法将改变正则表达式的source, global和ignoreCasesource属性的值。    constructor
    指出建立对象原型的function。注意这个属性的值由函数本身提供,而不是一个字串包含RegExp的name.Property提供。
    在JavaScript 1.1, NES 2.0以上版本提供    ECMA版本ECMA-262    描述:参考Object.constructor.
    exec方法    在指定的字符串运行匹配搜索。返回一个结果数组。    是RegExp的方法
    在JavaScript 1.2, NES 3.0以上版本提供     语法:    regexp.exec([str])regexp([str])
    参数:    regexp,正则表达式的名称,可以是一个变量名或文字定义串。
    str,要匹配正则表达式的字符串,如果省略,将使用RegExp.input的值。
    描述:就如在语法描述中的一样,正则表达工的exec方法能够被直接调用(使用regexp.exec(str))或者间接调用(使用regexp(str))。
    假如你只是运行以找出是否匹配,可以使用String搜索方法。
    假如匹配成功,exec方法返回一个数组并且更新正则表达式对象属性的值和预先定义的正则表达式对象、RegExp。如果匹配失败,exec方法返回null。
    请看下例:    <SCRIPT LANGUAGE="JavaScript1.2">    //匹配一个b接着一个或多个d,再接着一个b
    //忽略大小写    myRe=/d(b+)(d)/ig;    myArray = myRe.exec("cdbBdbsbz");
    </SCRIPT>    下面是该脚本的返回值:对象 属性/Index 描述 例子
myArray

myArray的内容 ["dbBd", "bB", "d"]  
index
基于0的匹配index 1  
input
原始字符串  cdbBdbsbz  
[0]
最后匹配的字符  dbBd  
[1], ...[n]
用圆括号括住的匹配字符串,如果有的话。不限制括号的个数。  [1] = bB
[2] = d  
myRe
lastIndex
开始下次匹配操作的index值  5  
ignoreCase
指出"i"是否使用以忽略大小写  true  
global
指出是否使用"g"标记来进行匹配所有可能的字串  true  
source
定义模式的文本字符串  d(b+)(d)  
RegExp
lastMatch$&
最后匹配的字符  dbBd  
leftContext$\Q
最新匹配前面的子串  c  
rightContext$'
最新匹配后面的子串  bsbz  
$1, ...$9
圆括号内的匹配子串,如果有的话。圆括号的个数不受限制,但RegExp只能保留最后9个  $1 = bB  
$2 = d  
lastParen  $+
最后一个加上圆括号的匹配子串,如果有的话  d  

    假如你的正则表达式使用了"g"标记,你可以多次使用exec 方法来连续匹配相同的串。当你这样做
的时候,新的匹配将从由正则表达式的lastIndex 属性值确定的子串中开始。例如,假定你使用下面的脚本:
    <SCRIPT LANGUAGE="JavaScript1.2">    myRe=/ab*/g;str = "abbcdefabh"
    myArray = myRe.exec(str);
    document.writeln("Found "+myArray[0]+". Next match starts at "+myRe.lastIndex)
    mySecondArray = myRe.exec(str);
    document.writeln("Found "+mySecondArray[0]+". Next match starts at "+myRe.lastIndex)
    </SCRIPT>    这个脚本显示如下结果:    Found abb. Next match starts at 3
    Found ab. Next match starts at 9    例子:
    在下面的例子中,用户输入一个名字,脚本根据输入执行匹配操作。接着检查数组看是否和其它用户的名字匹配。
    本脚本假定已注册的用户的姓已经存进了数组A中,或许从一个数据库中取得。    <HTML>
    <SCRIPT LANGUAGE="JavaScript1.2">    A = ["zhao","qian","sun","li","liang"]
    function lookup()     {     firstName = /\w+/i();     if (!firstName)
       window.alert (RegExp.input + "非法输入");     else {       count=0;
       for (i=0;i    输入你的姓然后按回车键。
    <FORM><INPUT TYPE:"TEXT" NAME="FirstName" onChange="lookup(this);"></FORM>
    </HTML>    global属性    正则表达式中是否使用了"g"标记。    RegExp属性,只读
    在JavaScript 1.2, NES 3.0以上版本提供     描述:    global是一个个别正则表达式对象的属性
    如果使用了"g"标记,global的值为true;否则为 false。"g"标记指定正则表达式测试所有可能的匹配。
    你不能直接改变该属性的值,但可以调用compile方法来改变它。    ignoreCase    检查正则表达式是否使用了"i"标记
    RegExp属性,只读     在JavaScript 1.2, NES 3.0以上版本提供     描述:
    ignoreCase是个别正则表达式对象的一个属性。
    如果使用了"i"标记,则返回true,否则返回false。"i"标记指示在进行匹配的时候忽略大小写。
    你不能直接改变该属性的值,但可以通过调用compile方法来改变它  

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP中巧用Response属性 ·第六课:ASP脚本循环语句
·在 Web 页上使用条件数值格式 ·连接数据库查询手册(不仅仅适用于asp)
·警惕"给你的FileSystemObject对象加把锁" ·用ASP做全文检索

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。