玉祥平台客服-15087858732

标题: 在平台中使用正则表达式 [打印本页]

作者: 刘亚东    时间: 2020-3-23 16:31
标题: 在平台中使用正则表达式
上平台中的代码:     '第一个参数是dll文件名,第二个参数是正则表达式的类名,第三个就是争着表达式的规则

    dim regex= LoadAssembly("System.dll","System.Text.RegularExpressions.Regex","^[0-9]*$")
    '参数是需要验证的字符串,返回结果为该字符串是否符合规则
    dim temp=regex.IsMatch("123"))

看到这个代码的时候大家可能已经明白了,其实是加载了System.dll的外部文件,这样有一个小问题就是,这个文件必须拷贝到客户端目录下,那么在平台中如果要使所有客户端都能使用,那就把System.dll文件放到客户端的自动更新目录下。
在说说System.dll文件哪里来的,这个就是.NET本来就有的,随便找台咱装了.NET的电脑拷贝出来就行了,一般实在:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll



在说说,为什么要这么麻烦,而不是直接就能使用正则表达式呢,下面就说说在平台中理论上是怎么操作的:
理论上在平台中只需要下面一句代码:
'第一个参数是验证字符串,第二个参数验证规则,直接返回验证结果
dim temp=System.Text.RegularExpressions.Regex.IsMatch("123", "^[0-9]*$")

但是这个目前还不能使用,等待平台后期版本也许会对这个处理,那么就可以直接使用System里面的这些函数,包括这个正则表达式。目前不能使用那就只有自己加载这个dll文件了。

管理员说明:
平台中是引用了System.Dll的。需要下面这种方法调用,就不需要把system.dll拷贝到客户端下。

dim regex=createObject("System.Text.RegularExpressions.Regex","^[0-9]*$")
dim temp=regex.IsMatch("123")
msgbox(temp)
已经更正。







作者: 刘亚东    时间: 2020-3-23 16:33
在来一个正则表达式常用的规则:
验证数字的正则表达式集
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0)  ^\d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$    正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数   ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数  ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数  ^(-?\d+)(\.\d+)?
作者: 王爱东    时间: 2020-3-23 16:37
这个确实很厉害。
作者: 万望    时间: 2020-3-23 16:52
这是确实是干活
作者: 万望    时间: 2020-3-23 16:53
刘亚东 发表于 2015-10-23 16:33
在来一个正则表达式常用的规则:
验证数字的正则表达式集
验证数字:^[0-9]*$


作者: 刘亚东    时间: 2020-3-23 17:03
好东西大家分享
作者: 刘亚东    时间: 2020-3-23 17:03
好东西大家分享
作者: 张兴康    时间: 2020-3-23 17:49
记得第一次接触正则表达式是学HTML的时候,这会都忘得差不多了,感谢楼主总结的这么全面
作者: 王爱东    时间: 2020-3-23 18:38
这个效果非常好,已经测试了几个。
作者: 王爱东    时间: 2020-3-25 09:44
能简单调用,肯定是最好的。
作者: 万望    时间: 2020-3-25 21:42
那个system.dll哪来的?
作者: 张军勇    时间: 2020-3-25 21:51
不错哈。能够把正则表达式引入进来,对于验证很有好处。
作者: 万望    时间: 2020-3-26 22:18
这下能加的强字段的验证了
作者: 王爱东    时间: 2020-3-27 19:40
平台中是引用了System.Dll的。需要这种方法调用,就不需要把system.dll拷贝到客户端下。
dim RegexObj = CreateObject("System.Text.RegularExpressions.Regex")
dim test = RegexObj.IsMatch("123", "^[0-9]*$")
作者: 张军勇    时间: 2020-3-27 23:26
新发现,可以采用CreateObject来创建对象。

dim regex=createObject("System.Text.RegularExpressions.Regex","^[0-9]*$")
dim temp=regex.IsMatch("123")
msgbox(temp)
作者: 刘亚东    时间: 2020-3-28 22:01
这个确实复杂了,有更简单的,论坛里面有,手机回帖,辛苦,发不了了解,大家收索把
作者: 万望    时间: 2020-3-28 23:01
lz很强大




欢迎光临 玉祥平台客服-15087858732 (http://bbs.delit.cn/) Powered by Discuz! X3.2