黑马程序员技术交流社区
标题: textbox中输入数字 [打印本页]
作者: 李玲 时间: 2012-6-13 10:16
标题: textbox中输入数字
实现在某一textbox里以逗号隔开输入十个0-100之间的整数,若个数不是十个或数字不是整数或不在0-100就提示错误,并重新输入 ,还有textbox输入的时候第一个不允许为逗号,只能输入数字之后才能写逗号。代码该怎么写呢。
作者: 王继光 时间: 2012-6-13 10:30
本帖最后由 王继光 于 2012-6-13 11:04 编辑
1. 获得txtbox里的字符串 str
2. 判断 str[0] 是不是 数字 isNumber()方法
3. 是的话, 分割 字符串,, 判断 长度 是否为10 , 不是返回 string.split()方法以 ,(逗号) 分割
4.循环 判断 分割后的 每个字符串 能不能转化为 整数,, 一旦遇到不能转化为整数 或 转化后的数字不在1-100之 间 返回
作者: 平建 时间: 2012-6-13 10:39
如果你正则学的好的话 建议用正则!
作者: ren1015 时间: 2012-6-13 14:45
问题有点繁琐,思路是先判断第一个字符是不是逗号,在判断逗号的个数是不是9个,再使用split方法分割字符串,判断每部分是不是数值,是不是0-100的整数
作者: ren1015 时间: 2012-6-13 19:23
string str,s1;
int i;
str = textBox1.Text;
s1 = str.Substring(0, 1);
if (int.TryParse(s1, out i))
{
string[] s=str.Split(',');
if (s.Length == 10)
{
int[] t=new int[10] ;
for (i = 0; i <= 9; i++)
{
if (!int.TryParse(s[i], out t[i]))
{
MessageBox.Show("包含非数字字符");
return;
}
if (t[i] > 100 || t[i] < 0)
{
MessageBox.Show("有数值不在0-100范围内");
return;
}
}
}
else
{
MessageBox.Show("输入数不够10组");
return;
}
}
else
{
MessageBox.Show("第一个字符不是数字");
return;
}
作者: 黑马-许泽宇 时间: 2012-6-13 22:06
感觉这个用正则表达式判断会好点.
作者: 孙毅 时间: 2012-6-14 15:49
可以这样写
string str = txt控件Id.Text.trim();
if (Regex.IsMatch(str, @"^\d\d?\,(\d\d?\,){8}\d\d?$"))
{
response.write("格式正确!");
}
else
{
response.write("格式不正确!");
}
作者: 孙毅 时间: 2012-6-14 15:54
孙毅 发表于 2012-6-14 15:49
可以这样写
string str = txt控件Id.Text.trim();
if (Regex.IsMatch(str, @"^\d\d?\,(\d\d?\,){8}\d\d?$" ...
不好意思,忽略了一点,我判断的是0-99的,把100掉了,在正则再加上|100
作者: 许庭洲 时间: 2012-6-15 09:54
前台用JAVASCRIPT采用keypress事件,或在后台写程序判断,采用.NET2.0中引入的TryParse方法,通过int.TryParse(s1, out i)来判断输入的第一个字符转换为整数是否成功,若成功采用Split(',');方法把输入的数据采用逗号隔开,然后在if语句里面判断输入的个数即可。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |