机房合作中WPF要使用的正则表达式(史上最全,包会)

简介: 机房合作中WPF要使用的正则表达式(史上最全,包会)
/// <summary>
        /// 只能输入数字和空格
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void Number(object sender, TextCompositionEventArgs e)
        {
            Regex re = new Regex("[^0-9]+");
            e.Handled =
re.IsMatch(e.Text);
            return;
        }
        //卡号只能输入数字
        public void NumberCardID(object sender, TextCompositionEventArgs e)
        {
            Regex re = new Regex("[^0-9.-]+");
            e.Handled =
re.IsMatch(e.Text);
            return;
        }
        /// <summary>
        /// 禁止输入数字和空格
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void NoNumber(object sender, TextCompositionEventArgs e)
        {
            Regex re = new Regex("^[0-9]*");
            e.Handled =
re.IsMatch(e.Text);
            return;
        }
        /// <summary>
        /// 手机号正则表达式
        /// </summary>
        /// <param name="phoneNumber"></param>
        public void Phone(string phoneNumber)
        {
            //电信手机号正则
            string dianxin = @"^1[3578][01379]\d{8}$";
            Regex dReg = new Regex(dianxin);
            //联通手机号正则        
            string liantong = @"^1[34578][01256]\d{8}$";
            Regex tReg = new Regex(liantong);
            //移动手机号正则        
            string yidong = @"^(134[012345678]\d{7}|1[34578][012356789]\d{8})$";
            Regex yReg = new Regex(yidong);
            if (dReg.IsMatch(phoneNumber) == false &&
tReg.IsMatch(phoneNumber) == false && yReg.IsMatch(phoneNumber) == false)
                throw new Exception("手机号码格式不正确,请重新输入");  //抛出提示信息
        }
        /// <summary>
        /// 禁用所有中英文特殊字符(***中文字符微软拼音输入法下有点问题***)
        /// </summary>
        /// <param name="textBox"></param>
        public static void
ForbidSpechars(System.Windows.Controls.TextBox textBox)
        {
            if (Regex.IsMatch(textBox.Text.Trim(), @"((?=[\x21-\x7e]+)[^A-Za-z0-9])")
               ||
Regex.IsMatch(textBox.Text.Trim(), @"[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|
\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|
\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5|\u00b7]"))
            {
                textBox.Text =
textBox.Text.Substring(0, textBox.Text.Length - 1);
                textBox.SelectionStart
= textBox.Text.Length;
            }
        }
/// <summary>
        /// 只能输入中文和字母
        /// </summary>
        /// <param name="keyPressE">KeyPressEventArgs内容</param>
        public static void InputHanEng(KeyPressEventArgs keyPressE)
        {
            Regex rg = new Regex("^[\u4e00-\u9fa5]$");  //正则表达式只输入中文
            if
(!rg.IsMatch(keyPressE.KeyChar.ToString()) && keyPressE.KeyChar != '\b')
            {
                keyPressE.Handled = true;
            }
            if (keyPressE.KeyChar >= 'a' &&
keyPressE.KeyChar <= 'z' || keyPressE.KeyChar >= 'A' && keyPressE.KeyChar <= 'Z')
            {
                keyPressE.Handled = false;
            }
        }
        /// <summary>
        /// 只能输入中文汉字
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public static void InputChinese(object sender, TextCompositionEventArgs e)
        {
            Regex re = new Regex("^[\u4e00 -
\u9fa5]{ 0, }$");
            if (e.Handled = re.IsMatch(e.Text))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
        public static void PhoneNumber(string phone)
        {
            //电信手机号码正则        
            string dianxin = @"^1[3578][01379]\d{8}$";
            Regex dReg = new Regex(dianxin);
            //联通手机号正则        
            string liantong = @"^1[34578][01256]\d{8}$";
            Regex tReg = new Regex(liantong);
            //移动手机号正则        
            string yidong = @"^(134[012345678]\d{7}|1[34578][012356789]\d{8})$";
            Regex yReg = new Regex(yidong);
            if (dReg.IsMatch(phone) ||
tReg.IsMatch(phone) || yReg.IsMatch(phone))
            {
            }
            else
            {
                throw new Exception("手机号格式不正确,请重新输入");
            }
        }
        /// <summary>
        /// 只能输入数字和退格
        /// </summary>
        /// <param name="keyPressE">KeyPressEventArgs内容</param>
        public static void InputNumBs(KeyPressEventArgs keyPressE)//TODO命名修改,位置修改
        {
            if (keyPressE.KeyChar > '9' ||
keyPressE.KeyChar < '0' && keyPressE.KeyChar != (char)8)
            {
                keyPressE.Handled = true;
            }
            return;
        }
        /// <summary>
        /// 只能输入英文字母和数字
        /// </summary>
        /// <param name="keyPressE">KeyPressEventArgs内容</param>
        public static void InputNumEng(object sender, TextCompositionEventArgs e)
        {
            Regex re = new Regex("^[A-Za-z0-9]+$");
            if (e.Handled = re.IsMatch(e.Text))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
        /// <summary>
        /// 禁止输入特殊字符
        /// </summary>
        /// <param name="textBox"></param>
        public static void
ForbidSpechars(System.Windows.Controls.TextBox textBox)
        {
            if (Regex.IsMatch(textBox.Text.Trim(), @"((?=[\x21-\x7e]+)[^A-Za-z0-9])")
               ||
Regex.IsMatch(textBox.Text.Trim(), @"[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|
\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|
\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5|\u00b7]"))
            {
                textBox.Text =
textBox.Text.Substring(0, textBox.Text.Length - 1);
textBox.SelectionStart = textBox.Text.Length;
            }
        }
     /// <summary>
        /// 清空grid下的所有日期控件的文本
        /// </summary>
        /// <param name="grid"></param>
        public static void ClearDate(Grid grid)
        {
            foreach (UIElement element in grid.Children)
            {
                if (element is DatePicker)
                {
                    (element as DatePicker).Text = "";
                }
            }
        }
        /// <summary>
        /// 禁止文本框复制粘贴
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void Prohibit(object sender, CanExecuteRoutedEventArgs e)
        {
            e.CanExecute = false;
            e.Handled = true;
        }
        #region 密码框小眼睛事件
        /// <summary>
        /// 鼠标抬起事件
        /// </summary>
        /// <param name="pwd"></param>
        /// <param name="txt"></param>
        public void ButtonUp(PasswordBox pwd, TextBox txt)
        {
            pwd.IsEnabled = true;
            pwd.Visibility =
Visibility.Visible;
            txt.IsEnabled = false;
            txt.Visibility = Visibility.Hidden;
        }
        /// <summary>
        /// 鼠标按下事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void ButtonDown(PasswordBox pwd, TextBox txt)
        {
            txt.Text = pwd.Password;
            txt.IsEnabled = true;
            txt.Visibility =
Visibility.Visible;
            pwd.IsEnabled = false;
            pwd.Visibility =
Visibility.Hidden;
        }
        #endregion
        //禁止输入空格
        public void SpaceKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Space)
            {
                e.Handled = true;
            }
        }

有些方法使用的时候要禁掉输入法

InputMethod.IsInputMethodEnabled=“False”

相关文章
|
7月前
|
数据采集 监控 Go
掌握Go语言正则表达式:regexp包全面解析
掌握Go语言正则表达式:regexp包全面解析
245 0
|
Web App开发 Python
Python标准库01 正则表达式(re包)
python正则表达式基础 简单介绍 正则表达式并不是python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。
828 0
|
Python Perl
Python标准库01 正则表达式 (re包)
原文:Python标准库01 正则表达式 (re包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   我将从正则表达式开始讲Python的标准库。
1046 0
|
Python Perl
Python标准库01 正则表达式 (re包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   我将从正则表达式开始讲Python的标准库。正则表达式是文字处理中常用的工具,而且不需要额外的系统知识或经验。
957 0
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r&#39;string&#39;`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
|
6月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
64 2
|
6月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
6月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
|
6月前
|
Python
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。
|
6月前
|
Python
Python中re模块的正则表达式
【6月更文挑战第2天】了解Python的re模块,它是处理正则表达式的核心工具。正则表达式用于在文本中查找特定模式。本文讨论了re模块的用法和技巧,包括导入模块、匹配、分组、替换文本、编译正则表达式以及使用预定义字符类、量词、锚点等高级功能。通过实例展示了如何在Python中执行这些操作,帮助提升文本处理能力。掌握这些技巧将使你更有效地利用正则表达式解决字符串处理问题。
64 2
下一篇
DataWorks