簡體   English   中英

C#中的正則表達式

[英]Regular Expression in C#

我想驗證文本框的輸入,以使其不為空,並且也僅接受十進制或整數。 我已經嘗試過以下正則表達式:^ \\ S [0-9] ,?[0-9] $這個允許在開頭一個字母

^ \\ S [0-9] + ,? [0-9] * $這個雖然不允許字母,但是至少需要2個數字,這是不希望的。

非常感謝您抽出寶貴的時間。

^\d+(\.\d+)?$

以數字開頭,然后可能以開頭。 更多數字。 如果您想要負數

^-?\d+(\.\d+)?$

盡管更簡單,更有用的可能是Double.TryParse

我建議只使用比較驗證器 ...

  <asp:CompareValidator id="Compare1" 
       ControlToValidate="TextBox1" 
       Operator="DataTypeCheck"
       Type="Double"
       runat="server"/>

它旨在處理您正在談論的事情,而不會弄亂所有正則表達式...

我承認我不是regex的粉絲(除非真正需要)。 看一下這篇文章:

正則表達式:現在您有兩個問題

"^\\d+(\\.\\d+)?$"應該這樣做。 這將匹配以一個或多個數字開頭,然后是小數點和一個或多個其他數字開頭的字符串。 小數點和小數部分被分組,因此如果您有一個,則也需要另一個,但不能有一個。

\\ S的使用將在開頭匹配任何非空白字符,這可能不是您想要的。

這應該起作用^ \\ d {1,}。?\\ d {1,} $

^ [\\ d] {1,99} [。] \\ d {1,99}

幾乎就是您所需要的。 您可以在這里嘗試: http : //www.gskinner.com/RegExr/

這將允許使用正數或負數以及逗號和小數。

但是,它不能確保逗號在正確的位置

^-?[\\d,]+\\.?\\d*$

通過

  • 2
  • 10
  • 10,000
  • 10,000.00
  • -10
  • -10,000
  • -10,000.00

失敗

  • a123
  • 音頻文件
  • 123a

老實說,正則表達式是錯誤的解決方案

暫無
暫無

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

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