ASP.NET 字符控制输入问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 02:09:05
C# 语言 控制TextBox字符输入的问题
比如:只能输入10位数字,不能输入汉字和字母,截取身份证号码的出生日期等;
回答解决问题的加20分

可以用正则表达式来验证用户的输入:
第一, 要把TextBox控件的 CausesValidation 属性设置为 true
第二, 为TextBox控件添加一个Validating 事件处理程序,有点像这样:
private void textBox1_Validating(object sender, CancelEventArgs e)
{
string expression = @"\d{1,10}"; // 1-10位数字的正则表达式
System.Text.RegularExpressions.Regex regex = new Regex(expression);
System.Text.RegularExpressions.Match m = regex.Match(textBox1.Text);
if (!m.Success || (m.Length != textBox1.Text.Length))
{
MessageBox.Show(" 必须输入1-10位数字");
e.Cancel = true;
}
}
这样如果用户没有输入1-10位数字就会收到提示,并且TextBox1仍然拥有输入焦点。

使用如下代码可以得到18位身份证号码中的生日:
string str = textBox1.Text;
int year = 0;
int month = 0;
int day = 0;
if (str.Length == 18)
{
year = int.Parse(str.Substring(6, 4));
month = int.Parse(str.Substring(10, 2));
day = int.P