MaskedTextBox总结

MaskedTextBox 总结
MaskedTextBoxMask属性中的一些掩码及其效果,网上这方面的资源不多,找了一部分,总结如下(不包括VS自带的验证):
IP地址:999.999.999.999
注:如果嫌那个下划线不好看,则设置PromptChar为一个空格
电话号码(例010-12345678): 000-00000000
日期:00000000 00/00/0000
美国模式的日期:00->L<LL-0000
注:日月份缩写年,其中的 3 个字母为首字母大写、后两个字母小写的月份缩写形式。
电话号码:(999)-000-0000
注:区号为可选项。如果用户不想输入可选字符,则可输入空格,也可以将鼠标指针直接放在掩码中由第一个 0 表示的位置。
货币:$999,999.00
注: 999999 范围内的货币值。货币、千分位和小数点字符将在运行时由区域性特定的等效字符替代。
掩码语言说明(相当于掩码的语法)
掩码元素
说明
正则表达式元素
0
 9  之间的任何一个数字。必选项。
\d
9
数字或空格。可选项。
[ \d]?
#
数字或空格。可选项。如果此位置在掩码中保留为空,它将显示为空格。允许使用加号  (+)  和减号  (-)
[ \d+-]?
L
ASCII  字母。必选项。
[a-zA-Z]
?
ASCII  字母。可选项。
[a-zA-Z]?
&
字符。必选项。
[\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]
C
字符。可选项。
[\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]?
A
字母数字。可选项。
\W
.
相应于区域性的小数点占位符。
不可用。
,
相应于区域性的千分位占位符。
不可用。
:
相应于区域性的时间分隔符。
不可用。
/
相应于区域性的日期分隔符。
不可用。
$
相应于区域性的货币符号。
不可用。
将后面的所有字符转换为小写。
不可用。
>
将后面的所有字符转换为大写。
不可用。
|
停止前面的大写转换或小写转换。
不可用。
\
对掩码字符进行转义,将它转换为原义字符。 “\\” 是反斜杠的转义序列。
\
所有其他字符。
原义字符。所有非掩码元素将在  MaskedTextBox 中以原样显示。
所有其他字符。
默认情况下,小数点 (.)、千分位 (,)、时间 (:)、日期 (/) 和货币 ($) 符号按应用程序的区域性定义显示。可使用 FormatProvider 属性强制它们显示为其他区域性的符号。在C#WinForm应用中一般是使用掩码进行输入控制。
除了使用掩码,在ASP.NET环境下的验证控件可以使用正则表达式,32种验证方式的正则表达式在我的一篇《C#中验证控件的使用方法总结一》博文中有介绍。在上一篇的《一个JavaScript计算器》中JavaScript有这样的语法进行输入验证的,即直接用正则表达式对输入进行test,确实神奇一点,以前从来没用过,代码如下(核心处是我用五角星标出来的):
 
function addNumber(tok)     //输入数值 
  { 
     with(oMemery) 
    { 
       try 
      { 
         var token; 
         if(tok ==  "\b"//如果输入的是一个退格 
          token = inBuffer.slice(0,-1);   //那么把缓存中的内容去掉一个 
         else    
          token = inBuffer + tok.toString();   //否则接受新输入的数字 
         //如果数值的第一位是小数点,显示的时候要补一个0 
         if(token.slice(0,1) ==  ".") token = 0 + token; 
         //判断输入接收后的结果是否满足数值的格式:^([\d]+(\.)?[\d]*)?$,其他 
                                                                 //常用正则表达式可以参考我的《C#中验证控件的使用方法总结》的博文 
         if(/^([\d]+(\.)?[\d]*)?$/.test(token)) //  
        { 
          inBuffer = token;   //如果满足,则确认接受,写入缓存 
        } 

         return formatBuff(inBuffer); 
         
      } 
       catch(ex) 
      { 
        alert(ex.message); 
      } 
    } 
  } 

      本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/186459,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值