我不是一個計算機科學的人,我想弄清楚如何防止用戶輸入多個小數點。例如,我如何阻止某人進入3..5?防止多個小數點
防止多個小數點
回答
問題中給出的背景實際上並不存在,但正確的方法是嘗試使用您正在使用的任何語言來解析輸入,如果失敗,則拒絕它。但是,如果你想有一個正則表達式:
^\d+\.\d+$ # allows numbers with a single decimal point;
fails if it doesn't have one
^\d+(\.\d+)?$ # allows numbers with a decimal point or without one
注意這些正則表達式允許在小數點兩側的數字的數量不受限制。如果你想指定的位數,就可以使用{m...n}
代替+
量詞:
^\d{1,3}\.\d{1,3}$ # allows numbers from 0.0 to 999.999
編輯:如果你想允許的形式.25
的輸入像tchrist建議,你可以使用方法:
^\d*\.\d+?$
爲什麼不簡單檢查它是否有2個小數點,如果是,拒絕? '。* \ .. * \ .. *' –
@Joseph因爲那麼'$$$$。!!!'將是有效的 – NullUserException
我以爲他只是想防止2個小數點。看起來OP不知何故知道他只有數字和句號。好吧,我猜,安全而不是抱歉。 –
對於浮點數,即###。##,你可以匹配
^[0-9]+[.]{1}[0-9]{1,2}$
這將允許任意數量的數字,後跟一個小數(必需),後面跟一個或兩個數字。
'[。]''後面'{1}'的含義是什麼? – NullUserException
不,這不允許任何數字的數字。 '/ ^(?:\。\ d {1,2} | \ d +(?:\。\ d {0,2})?)$/x'確實。 – tchrist
@tchrist爲什麼你把'?:'放在你的捕獲組中? (我知道它是什麼) – NullUserException
試試這個:
m{
^(?: \. \d{1,2} # eg: ".25"
| \d+ # eg: "2343409823409823049823094823094820389402984230948"
(?:
\. \d{0,2}
)? # eg: "186282.42"
)
$
}x
- 1. REACT - 防止小數點後2位小數點後的輸入
- 2. 防止點擊加載多個動作
- 3. 防止多次點擊一個鏈接
- 4. 防止多個彈出窗口點擊
- 5. CustomDialog - 防止多次點擊
- 6. 防止用戶,大於3個小數
- 7. 防止從做小數
- 8. 防止小部件在短時間內多次點擊
- 9. 防止數組中的多個條目
- 10. 防止多個Ajax帖子
- 11. 防止多個Ajax查詢
- 12. 防止多個API調用
- 13. 防止多個滑塊
- 14. 防止多個upvote Angularjs
- 15. 防止多個Ajax提交
- 16. Django多個站點:防止跨站點認證
- 17. 如何防止生成多個NSOperations的多次點擊
- 18. 如何防止多次點擊多個表單提交的PHP
- 19. 如何在解析JSON時防止刪除小數點?
- 20. 防止小數進入一列 - Oracle
- 21. 如何防止用戶輸入小數?
- 22. 防止在jquery中單擊多個點擊!
- 23. 如何防止快速點擊多個控件?
- 24. 如何防止多次點擊一個錨標籤按鈕
- 25. javascript如何防止輸入字段中的多個點
- 26. 防止一個數據環
- 27. d3-force防止單個節點移動
- 28. JToolBar防止最小化
- 29. 防止表調整大小
- 30. 防止wx.StaticBitmap調整大小
搜索'..'並適當地懲罰他們。 – tchrist
@tchrist:不會抓住像「3.14.159」這樣的東西。 –