簡體   English   中英

.NET正則表達式十進制數字

[英].NET regex decimal numbers

我必須在以下簡單假設下驗證正則表達式十進制數字(介於00.00至35.35之間)(我正在使用C#)。

1)不需要前導零(可選)。 2)始終需要2個小數。

換句話說,它應該是一個十進制數字,范圍為2個小數點。

有效數字的示例是:0.00、00.00,.67、2.89,並且這些數字應失敗:8.9999(小數點后4位),65.00(超出范圍)

我沒有困難來驗證2個小數點,但不知道該如何做? 使用正則表達式是否可以做到這一點?

認真。 使用RegEx檢查輸入是否與^\\d{1,2}\\.\\d{2}$匹配,然后將其轉換為數字並檢查0 <= x && x <= 35.35 RegEx並非旨在作為計算器。


如果你堅持:

^(?:(?:[012]?\d|3[0-4])\.\d{2}|35\.(?:[012]\d|3[0-5]))$

我會使用Decimal.TryParse 例如:

    private const decimal min = 0.0M;
    private const decimal max = 35.35M;
    static bool inRange(string s)
    {
        Decimal d = new Decimal();
        if (Decimal.TryParse(s, out d))
        {
            return d > min && d < max;
        }
        else
            return false;
    }

試試這個正則表達式:

^(0?\d|[12]\d|3[0-4])?\.\d\d$|^35\.([02]\d|3[05])$

暫無
暫無

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

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