簡體   English   中英

C#:使用正則表達式驗證文本框

[英]C#: Validating textbox using regular expressions

我正在尋找驗證文本框。 使用該文本框,以便用戶可以輸入客戶的工資率。 例如。 8.40、10.50、24.80。 我想驗證它,並且我讀到使用正則表達式將是更快,更輕松的方法。 問題是我仍然不熟悉如何在方括號內使用這些字符。 任何幫助是極大的贊賞。 謝謝!

好吧,我可以問幾個問題,確切說明什么是有效輸入。 但這是另一種方法:

double dbl;

if (!double.TryParse(Text1.Text, out dbl))
    MessageBox.Show("Invalid value entered!");
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是
  • 真實$ 1099999.00
  • 真$ 10.25
  • 真實的$ 90,999.99
  • False $ 1,990999.99
<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})? 一個編號的捕獲組,零或一個重復。 細分如下:

\\。 字面量。

\\ d {1,2}任意數字,重復1到2

不過,這僅適用於英語貨幣。 這是通過/失敗的一些示例。

  • 10.00通過
  • 1.00通過
  • 1.1通過
  • 1個通行證
  • 1.失敗
  • 10,00失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM