[英].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.