C#:使用正则表达式验证文本框

时间:2011-03-10 00:02:46

标签: c#

我希望验证文本框。使用文本框以便用户可以输入客户的工资率。例如。 8.40,10.50,24.80。我想验证它,我已经读过使用正则表达式将是更快更容易的方法。问题是我还不熟悉如何在括号内使用字符。任何帮助是极大的赞赏。谢谢!

3 个答案:

答案 0 :(得分:4)

好吧,我可以问几个关于究竟是什么构成有效输入的问题。但这是另一种方法:

double dbl;

if (!double.TryParse(Text1.Text, out dbl))
    MessageBox.Show("Invalid value entered!");

答案 1 :(得分:0)

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;

public class MainClass{

   public static void Main(){
        Regex moneyR = new Regex(@"\$(((\d{1,3},)+\d{3})|\d+)\.\d{2}");
        string[] money = new string[] { "$0.99", 
                                        "$1099999.00", 
                                        "$10.25", 
                                        "$90,999.99", 
                                        "$1,990,999.99", 
                                        "$1,999999.99" };
        foreach (string m in money){
            Console.WriteLine(m);
            Console.WriteLine(moneyR.IsMatch(m));
        }
   }
}
  • $ 0.99 True
  • True $ 1099999.00
  • True $ 10.25
  • True $ 90,999.99
  • 错误$ 1,990999.99

答案 2 :(得分:0)

<asp:TextBox ID="txtPayRate" runat="server" />
<asp:RegularExpressionValidator 
     ID="revPayRate" 
     ControlToValidate="txtPayRate" 
     ValidationExpression="\d+(\.\d{1,2})?" 
     ErrorMessage="Message to display in ValidationSummary control"
     Text="Message to display in control"
     runat="server" >
</asp: RegularExpressionValidator>

正则表达式可以翻译如下:

一个或多个数字 - 或 - 一个或多个数字后跟一个小数和一个或两个数字。

\ d + 任意数字,一次或多次重复

(。\ d {1,2})?编号的捕获组,零个或一个重复。细分如下:

\。 Literal。

\ d {1,2} 任意数字,1到2次重复

这只适用于英国货币。以下是一些将通过/失败的例子。

  • 10.00 PASS
  • 1.00 PASS
  • 1.1 PASS
  • 1 PASS
  • 1。 FAIL
  • 10,00 FAIL