TC官方合作论坛

 找回密码
 立即注册
查看: 4674|回复: 19

[源码分享] 关于判断用户输入是否数字字母等思路及源码

[复制链接]
发表于 2011-9-23 19:20:54 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
//首先获取用户输入的字串,然后通过字串方法 字符串.返回字符串() 获取指定字符,然后通过一个循环判断小于长度的字串(效果就是逐个判断)
//是否符合我们要求,如果不符合要求弹出消息框告诉用户输入错误
//这个函数判断用户输入是否为数字,字母,中文,这里只是给大家提一个思路,大家根据需求判断不同的范围就可以达到自己想要的效果
//这里接收的字符串是编辑框控件中的字符串,同理也可以是别的方法接收的字符串

功能 逻辑型 判断输入()
整型 长度,序号,缓存
序号=0
字符型 返回值
返回值=编辑框.获得文本("编辑框0")
长度=字符串.长度(返回值)
循环(序号<长度)
缓存=字符串.返回字符(返回值,序号)
如果( !((缓存 >=65 && 缓存 <= 90 ) || (缓存 >=97 && 缓存 <= 122 ) || (缓存 >=48 && 缓存 <= 57) || (缓存 >=#4E00 && 缓存 <= #9FBF)))
//判断字符ASCII范围 65~90是大写字符范围,97~122是小写字符范围,#4E00~#9FBF中文范围,如果要添加空格什么的把它的ASCII码 || 操作进去
//就行了,同样如果不要中文或字母,去掉即可
辅助.消息框("输入的不是一个有效的字符,请重新输入")
跳出
如果结束
序号=序号+1
循环结束
返回 真
功能结束







回复

使用道具 举报

发表于 2011-9-24 03:28:22 | 显示全部楼层
不错不错
回复 支持 反对

使用道具 举报

发表于 2011-9-24 08:46:11 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

发表于 2011-9-24 09:33:01 | 显示全部楼层
:-D有道理~~
回复 支持 反对

使用道具 举报

发表于 2011-9-24 11:17:32 | 显示全部楼层
这是判断一个字符的输入,这方法(“#4E00”)是不是涉及内存存储问题:|
回复 支持 反对

使用道具 举报

发表于 2011-9-24 14:51:53 | 显示全部楼层
顶!学习了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-9-24 14:57:12 | 显示全部楼层
回复 5楼小风子的帖子

跟ASCII码表对应的数字一样,这是unicode编码中文的取值范围,别人做成的表,我们知道范围就行了,这里是十六进制表示而已!
回复 支持 反对

使用道具 举报

发表于 2011-9-24 15:00:11 | 显示全部楼层
回复 7楼小王的帖子

明白了:-D
回复 支持 反对

使用道具 举报

发表于 2011-9-24 18:10:54 | 显示全部楼层
强大
回复 支持 反对

使用道具 举报

发表于 2011-9-24 18:25:59 | 显示全部楼层
原来可以根据返回的ASCII来判断,受教了
呵呵,自己无聊尝试着写了一个,管用哦...

namespace Mynamespace
function bool Begin_clicked()
string a
a="TeSt123啊"
int b,c
b=0
while (true)
if (b>str.strleng(a))
break
else
c=b+1
if (str.strgetat(a,b)>=97 && str.strgetat(a,b)<=122)
help.messagebox(str.strcat(str.strcat("第",convert.inttostr(c)),"位字符是小写"))
else
if (str.strgetat(a,b)>=65 && str.strgetat(a,b)<=90)
help.messagebox(str.strcat(str.strcat("第",convert.inttostr(c)),"位字符是大写"))
else
if (str.strgetat(a,b)>=48 && str.strgetat(a,b)<=57)
help.messagebox(str.strcat(str.strcat("第",convert.inttostr(c)),"位字符是数字"))
else
if (str.strgetat(a,b)>=#4E00  && str.strgetat(a,b)<= #9FBF)
help.messagebox(str.strcat(str.strcat("第",convert.inttostr(c)),"位字符是中文字符"))
else
endif
endif
endif
endif
endif
b=b+1
endwhile
return true
endfunction
function bool Exit_clicked()
help.exit()
return true
endfunction
endnamespace
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-6-7 08:24 , Processed in 0.043800 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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