[英]Regular expression for strict decimal numbers
我想要一個正則表達式來驗證十進制數字:
有效的十進制數字為:
+123
123
-123
+123.0000
+123,123.999
.0234
+1123,233,34
無效的DECIMAL數字為:
+1233+
-1233_
+12.233.33
有沒有人可以幫上忙
這個更好:
^[+\-]?\d+(,\d{3})*(\.\d*)?$
加號或減號,可選地,其后是任意數量的數字,然后是可選地,其后是任意數量的,123
部分,然后可選地是十進制和更多數字,這將處理除帶有前導十進制的數字以外的任何內容。
^[+\-]?(\d+(,\d{3})*(\.\d*)?|\.\d+)$
添加其他選項可以使數字前導十進制,必須在其后跟隨數字。
這適用於所有人:
+123
123
-123
+123.0000
+123,123.999
.0234
+1123,233,34
檢查演示:
^[+\-]?(\d+(,?\d)*(\.\d*)?|\.\d+)$
取決於您的正則表達式支持。
^([-+])?(\d+)?(\.\d+)?$
可選的+或-,數字,可選的',',后跟更多數字。 不幸的是也會匹配空字符串。
我認為這是您可以獲得的最簡單的方法:
^[+-]?\\d*\\.?\\d+$
小數點后總是需要數字。 利用這一事實簡化了問題。
更新:起初我沒有注意到您也需要處理逗號。 這是一個簡單的版本,允許逗號在小數點的左邊。 每個逗號前后必須至少有一個數字,但是除此之外,不執行任何規則(這似乎是示例數據的重點)。 實際上,最后一個逗號后需要兩位數字。
^[+-]?(\\d+(,\\d)?)*\\.?\\d+$
你可以用這個
^([-+] ?)?[0-9]+(,[0-9]+)?$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.