簡體   English   中英

正則表達式用於驗證十進制值

[英]Regex for validating decimal values

我現在正在使用此正則表達式,

Regex rg = new Regex(@"\\d{1,16}\\.?|\\d{0,16}\\.\\d{1,3}");

驗證輸入到文本框中的十進制值。 工作正常。 但是,它允許用戶輸入十進制值以及非數字字符,例如2.a2\\

我相信這里是錯誤的部分\\.? 我用過? 所以它接受字母值? 我嘗試過類似\\.[0-9]? 但它不起作用。

以下是有效和無效的值:

  • 1-從0到9有效
  • 11-有效
  • 11.1-有效
  • 11.11-有效
  • 11.1111-有效至小數點后4位
  • 1a-無效
  • 1 \\-無效
  • 1.1a-無效
  • -無效

關於SO可能會有重復的問題。 但是有效的正則表達式令牌因實現而異。 這就是為什么我在這里問一個新問題。 任何幫助都感激不盡!

您可以使用該正則表達式:

^\d{1,16}(\.\d{1,4})?$

它將首先驗證1到16位數字之間的可選點和1到4位數字。

如果要始終有點,則應使用:

^\d{1,16}((\.\d{1,4})|(\.))?$

正則表達式

^\d{1,16}(\.\d{1,4})?$

可以正常工作,如果您想識別是否只有在點上可以添加

^(\d{1,16})|(\d{1,16}\.{1}\d{0,4})|(\d{1,16}\.{1})$

它不像其他的那么優雅,但是可以在您發布的場景中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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