delphi正则表达式之tperlregex类的属性与方法(6):escaperegexchars函数
- 格式:pdf
- 大小:77.88 KB
- 文档页数:1


正则表达式
2005-12-9
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^ 00-
ff]
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^ 00- ff]/g,"aa").length;}
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
利用正则表达式分解和转换IP地址:
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return
RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP
address!")
}
}
不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:
var ip="10.100.20.168"
delphi反射的用法
Delphi的反射机制可以用来在运行时获取和操作对象的属性、方法和事件等信息。以下是使用Delphi反射的一些常见用法:
1. 获取对象的属性和方法:
使用`TObject.ClassInfo`方法可以获取一个对象的类类型信息,进而获取到对象的属性和方法。例如,使用`GetPropList`函数可以获取对象的属性列表,使用`GetMethodAddress`函数可以获取对象的方法地址。
2. 动态调用对象的方法:
通过获取对象的方法地址,可以使用`TMethod`类型来动态调用对象的方法。例如,通过将方法地址赋值给`TMethod`类型的变量,然后使用`TMethod`变量来调用方法。
3. 动态创建对象:
使用类的元类型信息,可以在运行时动态创建类的实例。可以通过`TClass`类型变量来引用类的元类型信息,并使用`TClass`类型变量的`Create`方法来创建对象实例。
4. 设置对象的属性值:
可以使用`SetPropValue`函数来设置对象的属性值。`SetPropValue`函数接受一个对象实例和一个属性名称,可以根据属性名称来设置对象的属性值。
5. 获取对象的事件:
使用`TMethod`类型变量,可以获取对象的事件。通过获取事件的方法地址和数据指针,可以在适当的时候触发事件。
这些只是Delphi反射的一些常见用法,还有许多其他的用法,取决于具体的需求和情况。反射功能可以帮助我们在运行时动态地操作对象,提供了更大的灵活性和可扩展性。
[新手必看]delphi部分的控件属性.方法.事件及常用函数的中文说明(定期更新)
1. TmainMemu控件
该控件是一个标准的菜单控件,运用它为窗口提供菜单。该对象的层次结构为:TObject—TPersistent--TCompoment—TMenu。
属性
1-AutoMetge:Boolean
功能:用于确定非MID程序中非主Form上的菜单要不要和主Form的菜单合并。主Form菜单AutoMerge的特性总是False。此外,还要设置菜单项的GroupIndex属性。
2-BiDiMode:TBiDiMode
功能:控制菜单的布置模式,是从左至右,还是从右至左。
3-Handle:HMENU
功能:菜单窗口句柄。
4-Images:TImagList
功能:出现在菜单项左边的图像列表。菜单项通过设置它们的ImageIndex属性,以确定图像列表中的哪—个图像出现在菜单项的左边。
5-Items:TMenuItem
功能:菜单项,描述了菜单的元素。
6-OwnerDraw:Boolean
功能:确定菜单项是否可以由应用程序来画。
7-ParentBiDiMode:Boolean
功能:确定BiDiMode属性是否从父辈继承而来,菜单的父辈一般为Form。
方法
1-GetOle2AcceleratorTabel:(var AccelTable:HAccel;var AccelCount:Integer;Group:array of Integer)
功能:返回主菜单的加速键表,其参数如下
AccelTabel:设置加速键表的句柄。
AccelCount:设置加速键的总数。
Groups:即GroupIndex的值。
2-Merge:
功能:组合Form上的一个主菜单与另一个非MDI应用程序的主菜单。调用Merge方法将另一个主菜单组合进该菜单。参数Menu指定了要合并的菜单
Delphi的TRegistry注册表类方法详解
Delphi的TRegistry注册表类方法详解
●GetDataInfo方法
Function GetDataInfo(const ValueName:String;Var Value:TRegDataInfo):Boolean;
TregDataType=(rdunknown,rdstring,rdexpandstring,rdexpandstring,rdinterger,rdbinary);
TregDataInfo=record
Regdata:TRegDataType;数据类型
dataSize:integer;数据大小
end
valuename:和当前键关联的数据值名称
value:返回数据的信息,如为rdstring和rdexpandstring类型,则数据大小包括字符串未尾的空结束字符。
如果成功返回True,失败返回False,并且Value的值为zeros
rdexpandstring:是一个包含环境变量的字符串;如“%PATH%”。
●CreateKey方法
Function CreateKey(const Key:string):Boolena;
新建一个名为Key的键,Key可以为绝对的或相对的名字,绝对名用反斜杠“\”开头,相对名是新建一个当前键的子键。新建没有值。
成功返回True,否则返回False,如果该键已存在将不产生效果。
●DeleteKey方法
Function DeleteKey(const Key:string):Boolean;
删除一个键及相关联的数据,在win95中子键也将被删除,NT中子键必须一个个删除。
●DeleteValue方法
Function DeleteValue (const Name:string):Boolean;
删除当前键中指定的一个数据值name。