簡體   English   中英

正則表達式僅允許使用0-24浮點數

[英]Regular Expression allowing only 0-24 float point numbers

我正在創建WPF TextBox擴展控件,該控件必須僅通過使用正則表達式才能允許以下輸入:

  • 數字必須在0到24之間(0 <=數字<= 24)
  • 浮點后最多只能允許兩位數,例如:0.5、0.55、23.2、23.55

對於我來說,很難找出哪個正則表達式可以通過該范圍。 我開始於:

^[0-9]*(?:\.[0-9]*)?$

但這並不完全符合我的要求。 因此,我正在尋求幫助以獲取此正則表達式。

試試這個模式:

^24(?:\\.00?)?|(?:2[0-3]|1?[0-9])(?:\\.[0-9]{1,2})?$

為什么要使用正則表達式感到頭疼? 只需解析文本,檢查值的范圍和小數位數:

bool IsValid(string text) {
    decimal candidate;
    if(decimal.TryParse(text, out candidate)){

        if(
            candidate >= 0 && // Check lower bound
            candidate <= 24 && // CHeck higher bound
            Math.Round(candidate, 2) == candidate // Check number of decimals
        ) {
            return true;
        }

    }
     return false;
}

此外,你會避免全球化問題(使用.,取決於文化)通過讓系統處理這個問題。

暫無
暫無

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

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