簡體   English   中英

使用C#RegularExpressions驗證用戶輸入

[英]Validate user input using C# RegularExpressions

如何驗證數字輸入,最大長度限制為3,並且不應以零個字符開頭(010、001應該無效)。 我將C# regex.IsMatch()與以下正則表達式([1-9]|[1-9][0-9]|[1-9][0-9][0-9])* 但是它會驗證輸入從零開始。 如何解決這個..?

您可以通過重復字符類0-2次來省略替換,並且應該使用錨點來聲明字符串的開始^和結束$

^[1-9][0-9]{0,2}$
  • ^字符串開頭
  • [1-9]匹配數字1-9
  • [0-9]{0,2}將數字0、1或2匹配0-9
  • $字符串結尾

用法:

bool isMatch = Regex.IsMatch("100", @"^[1-9][0-9]{0,2}$");

正則表達式演示

正則表達式非常確定。 請注意,無需任何正則表達式即可輕松實現此目的:

static bool IsValid(string input)
{
    return !string.IsNullOrEmpty(input)
        && input.Length < 3 && !input.StartsWith("0") && input.All(char.IsDigit); 
}

在線嘗試

我會更具體一點:

^((?!(0))[0-9]{0,3})$ 

說明:

  • 第一個不是0,我想在0到9之間最多3個數字。

[1-9][0-9]{2}$

這將根據您的要求工作。 正則表達式好友的睾丸,以下測試案例

  1. 001失敗
  2. 1000000失敗
  3. 900張
  4. 010失敗

您可以使用^[1-9][0-9]{0,2}$ ,不允許以零開頭

暫無
暫無

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

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