日期:2014-05-18  浏览次数:20854 次

[求助]正则表达式问题!!
1、我想限定文本框中只能输入正整数.    
2、我的数据库的表中没有年龄这一项,但是我想通过当前时间减去出身年月再加一     实现年龄的取值.应该怎么实现        
出生年月的格式为yyy-mm     应该怎么实现?    
分比较少,是我全部的分了.请大家帮帮忙.

------解决方案--------------------
1。只需为TextBox加个一个验证控件:RegularExpressionValidator。其ValidationExpression值为:^[1-9]+[\d]$.并将其ControlToValidate设为要验证的控件ID。
2。日期相减:int age=dtNow.Year-dtBirth.Year;得到年龄。
------解决方案--------------------
using System.Text.RegularExpressions; //新添加的.

private void button1_Click(object sender, System.EventArgs e)
{
if(CheckInput()==true)
{
MessageBox.Show( "做你想做的事 ");
}
}

public bool CheckInput()
{
string my_value=this.textBox1.Text.ToString();
Match mc=Regex.Match(my_value, "^[0-9]*[1-9][0-9]*$ ");
if(mc.Success)
{
MessageBox.Show( "success! ");
return true;
}
else
{
MessageBox.Show( "failed ");
this.textBox1.Text=String.Empty;
return false;
}

}

public int GetOld()
{
string query= "select left(birthday,case when charindex( '- ',birthday)-1> =0 then charindex( '- ',birthday) else 0 end ) as birthday from Table_1 ";
//通过此查询即可得到数据库表中的年份.当然.要结合 SqlConnection .......,把此值附给一个变量aa既可
int birthYear=Convert.ToInt32(aa);//aa表示得到的值.
int nowYear=Convert.ToInt32(System.DateTime.Now.Year);
int old=nowYear-birthYeal+1;
return old;

}