回答
一個簡單的正則表達式來驗證數字將匹配:
^\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. 正則表達式:用十進制數字和數字匹配
- 6. 正則表達式幫助十進制
- 7. 十進制正則表達式問題
- 8. 十進制值的正則表達式
- 9. Java十六進制正則表達式
- 10. 正則表達式 - 十進制
- 11. 正則表達式 - 十進制的
- 12. 正則表達式爲字符串中的十進制數字
- 13. 正則表達式接受0到20之間的數字,包括1或2個十進制數字C#
- 14. 正則表達式接受十進制數字,但不是單一的0
- 15. 0或正數的正則表達式
- 16. 正則表達式來檢測數字,但不是十進制
- 17. 從正則表達式字符串中的十進制數
- 18. c#正則表達式的數字範圍十進制
- 19. 添加兩位十進制數字到數字範圍正則表達式
- 20. 用字母和十六進制表示的正則表達式
- 21. 正則表達式,如果爲3或6位十六進制
- 22. 正則表達式驗證,並提取字符串以十進制或分數
- 23. 正則表達式幫助:十進制正數,2位
- 24. 十位數字的正則表達式
- 25. 有限制的十進制數的正則表達式
- 26. 十進制值的正則表達式限制16位數
- 27. 正則表達式表示jquery的非十進制數值
- 28. 正則表達式允許的十進制數大於0且小於100
- 29. 非零負數十進制數的正則表達式
- 30. Objective-C正則表達式替換十六進制字節?
有點模糊的問題,國際海事組織。嚴格來說,十進制數字是用十進制數表示的數字,而我想你實際上是指小數部分(帶有「。」或「,」)。你能否澄清並舉幾個有效和無效字符串的例子? – 2011-01-31 13:30:11