簡體   English   中英

正則表達式驗證價格

[英]Regular Expression to validate price

我需要一個正則表達式,以下列格式驗證價格:
0.07 //有效
0.0 //無效
20 //有效

所有上述表達式都是我想要實現的

^\d{0,8}(\.\d{1,4})?$

我使用上面的表達式,它也接受0.0,在我的情況下是無效的。 謝謝。

為什么不使用那個RegEx,但是也檢查value > 0我認為你也不想要負價 - 其他'數字檢查'方法最有可能被認為是有效的

您可以使用負向前瞻 ,斷言從行的開頭跟隨的內容不是零或零時間后跟一個匹配點且僅為零的可選部分。

^(?!0*\\.0+$)\\d*(?:\\.\\d+)?$

說明

  • ^斷言線的開始
  • (?!負面的向前看
    • 0*\\.0+$匹配零次或多次0后跟一個點和一次或多次0,直到字符串結束
  • )仔細觀察
  • \\d*匹配零位或多位數
  • (?:非捕獲組
    • \\.\\d+匹配一個點后跟一個或多個數字
  • )? 關閉非捕獲組並使其可選
  • $斷言該行的結尾

在C#中,我建議使用標准庫來驗證十進制值,例如使用Decimal.TryParse

然后你可以實現類似的東西:

public static bool IsValid(string price) {

    var result = Decimal.TryParse(price, out decimal d);

    if (result && d != 0) {
        return true;
    }

    return false;

}

暫無
暫無

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

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