2011-12-06 50 views
-1

你好,即時通訊在C#上尋找錢和日期的正則表達式。我想接受任何正數只在0.00的格式,而不是與0,如0,00。也即時搜索和表達日期的格式爲dd/mm/yyyy。誰能幫我?謝謝C#上的金錢和日期的正則表達式?

我的代碼更新到這個

System.Text.RegularExpressions; 
csReleaseDate = txtReleaseDate.Text; 
String dateRegex = @"^\\d{2}/\\d{2}/\\d{4}$"; 
if (Regex.IsMatch(csReleaseDate, dateRegex)) { 
lblRequired.Text = "is working"; 
} else { 
lblRequired.Text = "is now working"; } 

,但沒有在網頁

+0

在這個頁面上有很好的答案,但我也會指出你的例子不起作用,因爲@「\\」會產生「\\」。刪除@prefix並且你有合理的日期檢查。 (如果日期的月份和日期有兩位數,並且年份爲四位。) –

+0

我已將@刪除,但仍不起作用。我對接文本而不是dd/mm/yyyy,並且不工作。即時通訊沒有得到任何消息正在工作或正在工作 –

回答

2

你最好使用DateTimeDecimalTryParse方法的引用。

使用DateTime您可以使用TryParseExact來匹配確切格式,如果格式正確,則使用Decimal您可以檢查該值是否爲正數。

這些是驗證字符串代表這些類型的更好選擇。

+0

只是相反'TryParse' ;-) – Fischermaen

+1

我認爲你的意思是TryParse。但是,TryParse會接受任何有效的日期或小數,而不僅僅是他想要的類型。 –

0
"^\\d{2}/\\d{2}/\\d{4}$" 

日期,我認爲。

1

不要對這樣一個小問題使用正則表達式。拿到這筆錢有這樣一種說法:

decimal parsedMoney; 
if (decimal.TryParse(stringToParse, out parsedMoney)) 
{ 
    // Do something with the money 
} 

而隨着這樣的日期類似:

DateTime parsedDate; 
if (DateTime.TryParse(stringToParse, out parsedDate)) 
{ 
    // Do something with the date 
} 

編輯

如果你真的想用正則表達式,然後使用\A\d+\.\d{2}\Z爲搜索你的錢和\d{2}/\d{2}/\d{4}用你的預期格式搜索日期。