大家来看看这段代码有什么问题

aprex 2005-04-30 04:39:14
try //无效报错;
{
if(Convert.ToInt64(textBox1.Text) < 1 && (!textBox1.Text.ToString().EndsWith("x")) &&(!textBox1.Text.ToString().EndsWith("X")))
{
MessageBox.Show("请输入正确的身份证号!");
textBox1.Focus();
return;
}
}
catch
{
MessageBox.Show("Insert Valid ID Please!");
textBox1.Focus();
return;
}
就是一个身份证号的输入眶,本人刚用C#,大家帮帮忙,看看有什么问题?
...全文
170 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
aprex 2005-05-08
  • 打赏
  • 举报
回复
加了30分,大家帮帮忙啊
aprex 2005-05-08
  • 打赏
  • 举报
回复
aprex 2005-05-08
  • 打赏
  • 举报
回复
再顶起
a1147 2005-05-07
  • 打赏
  • 举报
回复
呵呵,用一下,监视看一看!
aprex 2005-05-07
  • 打赏
  • 举报
回复
try //无效报错;
{
if(Convert.ToInt64(textBox1.Text) < 1 &&
(
(!textBox1.Text.ToString().EndsWith("x")) ||
(!textBox1.Text.ToString().EndsWith("X"))
)
)
{
MessageBox.Show("请输入正确的身份证号!");
textBox1.Focus();
return;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
textBox1.Focus();
return;
}
诶 ,还不知道为什么 ,继续调试啊~~
aprex 2005-05-07
  • 打赏
  • 举报
回复
先来句题外话:
大家51都放假了哈,回帖好像都是51前的^_^

To:mobydick(敌伯威|我排著队拿著爱的号码牌)
很感谢你的回复(也感谢其他各位拉),那个贴我看过了,也收藏了
还是那句话,正则我现在不会用,而且我想实现的就是在Textbox里输身份证号,
输入全数字或末尾为x,ok;输其他字母就提示,仅此而已,其他关于身份证号的判断不考虑。

然后就是多位前辈提出的 有个&&应改为||的问题,我已经改过来了
可是执行的时候还是不对,一输字母就捕捉到异常,代码如下
mobydick 2005-04-30
  • 打赏
  • 举报
回复
问题很多,
细节上,最好不要这样使用Convert.ToInt64(textBox1.Text),应该使用临时变量
string temp = textBox1.Text;
int i = Convert.ToInt64(textBox1.Text);

还有,身份证号码不是一个整数,而是一个字符串,这个字符串的每一部分表示的意义都是不一样的。最后一位是校验码,是根据前面的信息算出来的。

看看这篇帖子。
http://community.csdn.net/Expert/topic/3536/3536807.xml?temp=.9470636
chllhc 2005-04-30
  • 打赏
  • 举报
回复
看不懂,给点分吧:)
Robert_Wang1983 2005-04-30
  • 打赏
  • 举报
回复
应该是
if(Convert.ToInt64(textBox1.Text) < 1 &&
(
(!textBox1.Text.ToString().EndsWith("x")) ||
(!textBox1.Text.ToString().EndsWith("X"))
)
mathsword 2005-04-30
  • 打赏
  • 举报
回复
你的判断逻辑是有问题的,你仔细看看
&&是and的意思,应该用||
studydotnet 2005-04-30
  • 打赏
  • 举报
回复
我的是X
ghchen 2005-04-30
  • 打赏
  • 举报
回复
没发现
aprex 2005-04-30
  • 打赏
  • 举报
回复
我的身份证末尾也不是x,不过还是有些人是吧

所以这个需求还是考虑了
aprex 2005-04-30
  • 打赏
  • 举报
回复
经常会听说 正则 很好用
不过从没用过 而且现在也没时间了 以后再研究
aprex 2005-04-30
  • 打赏
  • 举报
回复
就是 输了x和X 和输其他字母一样 达不到想要的效果
panda2fw2 2005-04-30
  • 打赏
  • 举报
回复
没发现。
mathsword 2005-04-30
  • 打赏
  • 举报
回复
我的身份证末尾就不是x啊,用匹配身份证的正则表达式做吧。
小贵子88 2005-04-30
  • 打赏
  • 举报
回复
没错啊
fengfangfang 2005-04-30
  • 打赏
  • 举报
回复
什么错

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧