-----突破自我,突破思维定势,突破昨天! 在才智和智慧不相上下的人群中,你拥有更高的热情,并能坚持下去,那么成功便在更大程度上属于你。

发布新日志

  • 常用正则表达式

    2008-12-18 16:21:27

    正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

    匹配中文字符的正则表达式: [\u4e00-\u9fa5]
    评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

    匹配双字节字符(包括汉字在内):[^\x00-\xff]
    评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

    匹配空白行的正则表达式:\n\s*\r
    评注:可以用来删除空白行

    匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
    评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
    匹配首尾空白字符的正则表达式:^\s*|\s*$
    评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    评注:表单验证时很实用
    匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
    评注:网上流传的版本功能很有限,上面这个基本可以满足需求
    匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
    评注:表单验证时很实用
    匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
    评注:匹配形式如 0511-4405222 或 021-87888822
    匹配腾讯QQ号:[1-9][0-9]{4,}
    评注:腾讯QQ号从10000开始
    匹配中国邮政编码:[1-9]\d{5}(?!\d)
    评注:中国邮政编码为6位数字
    匹配身份证:\d{15}|\d{18}
    评注:中国的身份证为15位或18位
    匹配ip地址:\d+\.\d+\.\d+\.\d+
    评注:提取ip地址时有用
    匹配特定数字:
    ^[1-9]\d*$    //匹配正整数
    ^-[1-9]\d*$   //匹配负整数
    ^-?[1-9]\d*$   //匹配整数
    ^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
    ^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
    ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
    ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
    ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
    评注:处理大量数据时有用,具体应用时注意修正

    匹配特定字符串:
    ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
    ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
    ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
    ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
    ^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
    评注:最基本也是最常用的一些表达式

  • CreateObject 函数

    2008-12-18 15:30:37

    创建并返回一个对 ActiveX 对象的引用。

     

    语法

     

    CreateObject(class,[servername])

     

    CreateObject 函数的语法有如下部分:

     

    部分 描述

     

    class 必需的; Variant (String). 要创建的应用程序名称和类。

     

    servername 可选的; Variant (String). 要在其上创建对象的网络服务器名称。

     

    class 参数使用 appname.objecttype 这种语法,包括以下部分:

     

    部分 描述

     

    appname 必需的;Variant(字符串)。提供该对象的应用程序名。

     

    objecttype 必需的;Variant(字符串)。待创建对象的类型或类。

     

    说明

     

    每个支持自动化的应用程序都至少提供一种对象类型。例如,一个字处理应用程序可能会提供 Application 对象,Document 对象,以及 Toolbar 对象。

     

    要创建 ActiveX 对象,只需将 CreateObject 返回的对象赋给一个对象变量:

     

    '声明一个对象变量来存放该对象

     

    '的引用。Dim as Object 采用后期绑定方式。

     

    Dim ExcelSheet As Object

     

    Set ExcelSheet = CreateObject("Excel.Sheet")

     

    上述代码将启动该应用程序创建该对象,在本例中就是创建一个 Microsoft Excel 电子数据表。对象创建后,就可以在代码中使用自定义的对象变量来引用该对象。在下面的示例中,可以使用对象变量 ExcelSheet 来访问新建对象的属性和方法,以及访问 Microsoft Excel 的其它对象,包括应用程序对象和单元格集合。

     

    '设置 Application 对象使 Excel 可见

     

    ExcelSheet.Application.Visible = True

     

    '在表格的第一个单元中写些文本

     

    ExcelSheet.Cells(1, 1).Value = "This is column A, row 1"

     

    '将该表格保存到 C:\test.doc 目录

     

    ExcelSheet.SaveAs "C:\ TEST.DOC"

     

    '使用应用程序对象的 Quit 方法关闭 Excel

     

    ExcelSheet.Application.Quit

     

    '释放该对象变量

     

    Set ExcelSheet = Nothing

     

    使用 As Object 子句声明对象变量,可以创建一个能包含任何类型对象引用的变量。不过,该变量访问对象是后期绑定的,也就是说,绑定在程序运行时才进行。要创建一个使用前期绑定方式的对象变量,也就是说,在程序编译时就完成绑定,则对象变量在声明时应指定类 ID。例如,可以声明并创建下列 Microsoft Excel 引用:

     

    Dim xlApp As Excel.Application

     

    Dim xlBook As Excel.Workbook

     

    Dim xlSheet As Excel.WorkSheet

     

    Set xlApp = CreateObject("Excel.Application")

     

    Set xlBook = xlApp.Workbooks.Add

     

    Set xlSheet = xlBook.Worksheets(1)

     

    前期绑定的变量引用可以提供更好的性能,但该变量只能存放声明中所指定的类的引用。

     

    可以将 CreateObject 函数返回的对象传给一个参数为对象的函数。例如,下面的代码创建并传递了一个 Excel.Application 对象的引用:

     

    Call MySub (CreateObject("Excel.Application"))

     

    可以在一个远端连网的计算机上创建一个对象,方法是把计算机的名称传递给 CreateObject servername 参数。这个名称与共享名称的机器名部份相同:对于一个共享名称为 "\\MyServer\Public," servername 参数是 "MyServer"

     

    下面的代码返回在一个名为 MyServer 的远端计算机上运行的 Excel 实例的版本号:

     

    Dim xlApp As Object

     

    Set xlApp = CreateObject("Excel.Application", "MyServer")

     

    Debug.Print xlApp.Version

     

    如果远端服务器不存在或者不可用,则会发生一个运行时错误。

     

    注意 当该对象当前没有实例时,应使用 CreateObject。如果该对象已有实例在运行,就会启动一个新的实例,并创建一个指定类型的对象。要使用当前实例,或要启动该应用程序并加载一个文件,可以使用 GetObject 函数。

     

    如果对象已登记为单个实例对象,则不管执行多少次 CreateObject,都只能创建该对象的一个实例。
  • Option Explicit 语句

    2008-12-18 15:24:08

    声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在脚本中显式声明变量。例如:

    Dim DegreesFahrenheit

    声明多个变量时,使用逗号分隔变量。例如:

    Dim Top, Bottom, Left, Right

    另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果。因此,最好使用 Option Explicit 语句显式声明所有变量,并将其作为脚本的第一条语句。

    说明:如果使用 Option Explicit,该语句必须出现在脚本的任何其他语句之前。

    使用 Option Explicit 语句时,必须使用 DimPrivatePublic ReDim 语句显式声明所有变量。如果试图使用未经声明的变量名,则会出现错误。

Open Toolbar