簡體   English   中英

嚴格十進制數字的正則表達式

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

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