回答
一個簡單的正則表達式來驗證數字將匹配:
^\d+(\.\d+)?$
這應該適用於具有可選的前導零的數字,帶有可選的單點和多位數。
^...$
- 匹配從開始到所述串的端部(將不會驗證ab12.4c
)\d+
- 至少有一個數位。(...)?
- 可選組...\.\d+
- 字面點和一個或多個數字。
這應該做你想要什麼:
3210它會匹配任何數量從0開始,然後任意數量的,也許,或。和任何數字
這將允許0.0.0.5等 – 2011-01-31 13:25:36
這與'0 ........ ,,,,,,,,, .........`匹配,只是命名一個無效數字。 – 2011-01-31 13:25:40
這個似乎不喜歡0 – user398341 2011-01-31 13:26:57
我總是用RegExr來建立我的正則表達式。這是一種拖放,並有你的正則表達式和結果的實時預覽。
它會看起來像^ 0,0-9] *
'/^([0-9\.]+)$/'
如果測試字符串是一個正十進制數
^[0-9]+(\.[0-9]+)?$
請注意,這個表達式0.1將是有效的,但0.1不會。
由於小數可能會或可能不會對他們有一個小數點,和可能會或可能不會有一個小數點前的數字,如果他們有一些事後,和可能會或可能不會有位以下是小數點如果他們有一些它之前,你必須使用此:
^(\d+(\.\d*)?|\d*\.\d+)$
這通常是更好的寫:
^(?:\d+(?:\.\d*)?|\d*\.\d+)$
和米UCH更好地寫着:
(?x)
^ # anchor to start of string
(?: # EITHER
\d+ (?: \. \d*)? # some digits, then optionally a decimal point following by optional digits
| # OR ELSE
\d* \. \d+ # optional digits followed then a decimal point and more digits
) # END ALTERNATIVES
$ # anchor to end of string
如果您正則表達式編譯器不支持\d
,或者也可以根據您的正則表達式引擎如何支持Unicode的是,如果你應該更喜歡與Unicode的Decimal_Number
只匹配ASCII數字,而不是什麼財產(快捷方式Nd
) - 也就是Numeric_Type=Decimal
財產的任何東西 - 那麼您可能希望在[0-9]
之間交換以上所有使用\d
的實例。
- 1. 0或5的單位十進制數的正則表達式
- 2. 正則表達式十進制到int
- 3. 十進制數的正則表達式
- 4. 十進制值的正則表達式
- 5. 正則表達式接受0到20之間的數字,包括1或2個十進制數字C#
- 6. 正則表達式接受十進制數字,但不是單一的0
- 7. 0或正數的正則表達式
- 8. c#正則表達式的數字範圍十進制
- 9. 正則表達式,如果爲3或6位十六進制
- 10. 十位數字的正則表達式
- 11. 正則表達式幫助:十進制正數,2位
- 12. 十進制值的正則表達式限制16位數
- 13. 有限制的十進制數的正則表達式
- 14. 正則表達式表示jquery的非十進制數值
- 15. 正則表達式允許的十進制數大於0且小於100
- 16. 非零負數十進制數的正則表達式
- 17. 正則表達式僅接受整數和十進制數
- 18. Objective-C正則表達式替換十六進制字節?
- 19. 十進制值和可選字符串的正則表達式
- 20. 使用正則表達式驗證十六進制字符串
- 21. 正則表達式:匹配十六進制/鍵字符串
- 22. C#正則表達式得到特定的字符與十進制數
- 23. 只有數字,這個數字可能是十進制的(正則表達式)
- 24. 使用正則表達式分裂出一個十進制數
- 25. 十進制數正則表達式包括+, - 符號
- 26. 正則表達式來驗證十進制數
- 27. 驗證十進制數的正則表達式
- 28. 帶點和空白的十進制數的正則表達式
- 29. 正則表達式不承認十進制數以及
- 30. Yii中驗證十進制數的正則表達式
有點模糊的問題,國際海事組織。嚴格來說,十進制數字是用十進制數表示的數字,而我想你實際上是指小數部分(帶有「。」或「,」)。你能否澄清並舉幾個有效和無效字符串的例子? – 2011-01-31 13:30:11