度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 5586|回复: 16
打印 上一主题 下一主题

[分享] 在平台中使用正则表达式

[复制链接]

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
跳转到指定楼层
楼主
发表于 2020-3-23 16:31:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上平台中的代码:     '第一个参数是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)
已经更正。






分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
沙发
 楼主| 发表于 2020-3-23 16:33:14 | 只看该作者
在来一个正则表达式常用的规则:
验证数字的正则表达式集
验证数字:^[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+)?
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
板凳
发表于 2020-3-23 16:37:49 | 只看该作者
这个确实很厉害。
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9378

积分

论坛元老

Rank: 8Rank: 8

积分
9378
地板
发表于 2020-3-23 16:52:39 | 只看该作者
这是确实是干活
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9378

积分

论坛元老

Rank: 8Rank: 8

积分
9378
5#
发表于 2020-3-23 16:53:45 | 只看该作者
刘亚东 发表于 2015-10-23 16:33
在来一个正则表达式常用的规则:
验证数字的正则表达式集
验证数字:^[0-9]*$

若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
6#
 楼主| 发表于 2020-3-23 17:03:16 | 只看该作者
好东西大家分享
回复 支持 反对

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
7#
 楼主| 发表于 2020-3-23 17:03:24 | 只看该作者
好东西大家分享
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
8#
发表于 2020-3-23 17:49:59 | 只看该作者
记得第一次接触正则表达式是学HTML的时候,这会都忘得差不多了,感谢楼主总结的这么全面
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
9#
发表于 2020-3-23 18:38:41 | 只看该作者
这个效果非常好,已经测试了几个。
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
10#
发表于 2020-3-25 09:44:49 | 只看该作者
能简单调用,肯定是最好的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-12-23 08:43 , Processed in 0.125837 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表