C# 正则表达式限制输入
Winform 中:
建立一个类,方便以后使用,内容如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace UI
{
public class TextSet
{
/// <summary>
/// 限制只可输入数字
/// </summary>
/// <param name="e"></param>
public static void setNumber(KeyPressEventArgs e)
{
if (e.KeyChar != '\b' && !Char.IsDigit(e.KeyChar))
{
e.Handled = true;
MessageBox.Show("请输入数字!");
return;
}
}
/// <summary>
/// 限制只能输入汉字或字母
/// </summary>
/// <param name="c"></param>
public static void setChinese(KeyPressEventArgs e)
{
Regex rg = new Regex(@"^[\u4e00-\u9fa5a-zA-Z\b]+$"); //\b是退格键
if (!rg.IsMatch(e.KeyChar.ToString()))
{
e.Handled = true;
MessageBox.Show("只能输入汉字或字母!");
return;
}
}
/// <summary>
/// 只能输入字母或数字
/// </summary>
/// <param name="e"></param>
public static void setEnglishOrNum(KeyPressEventArgs e)
{
if ((e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar >= 'A' && e.KeyChar <= 'Z')
|| (e.KeyChar >= '0' && e.KeyChar <= '9') || (e.KeyChar == 8))
{
e.Handled = false;
}
else
{
e.Handled = true;
MessageBox.Show("密码只能是字母或者数字!");
return;
}
}
}
}
针对 Textbox 中的事件:
private void txtUserID_KeyPress(object sender, KeyPressEventArgs e)
{
TextSet.setNumber(e);
}
WPF 中:
建立一个类,方便以后使用,内容如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Input;
namespace UI
{
public class Limit
{
/// <summary>
/// 限制只能输入数字
/// </summary>
/// <param name="e"></param>
public void limitnumber(TextCompositionEventArgs e)
{
Regex re = new Regex("[^0-9]+");
e.Handled = re.IsMatch(e.Text);
}
/// <summary>
/// 限制只能输入数字1到7
/// </summary>
/// <param name="e"></param>
public bool limitnumberOneToServen(TextCompositionEventArgs e)
{
Regex re = new Regex("[^1-7]+");
e.Handled = re.IsMatch(e.Text);
return e.Handled;
}
/// <summary>
/// 限制只能输入数字和小数点
/// </summary>
/// <param name="e"></param>
public void limitnumber1(TextCompositionEventArgs e)
{
Regex re = new Regex("[^0-9.]+");
e.Handled = re.IsMatch(e.Text);
}
}
}
针对 Textbox 中的事件:
private void TxtBoxID_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
Limit limit = new Limit();
limit.limitnumber(e);
}
代码按需更改
推荐阅读
Regex Class (System.Text.RegularExpressions)
还没有评论,来说两句吧...