2011-05-24 21 views
0

嗨 我正在使用c#在窗口窗體上應用正則表達式。但現場正則表達不起作用!Regex.IsMatch不能以窗口形式使用csharp

if (txtRefno.Text == "" && !Regex.IsMatch(txtRefno.Text, @"^[0-9]+$")) 
{ 
    msg.Text = "reference no. contain Invalid characters"; 
} 

但它不工作,接受一切。
我改變了模式爲「^ [0-9] + $」,但我收到相同的結果;然後我改變了regex.IsMatch(inputstring, pattern) == false;的條件,然後應該顯示錯誤,但它也不適用於我。
任何想法?

問候
touseef

回答

8

我不能幫助你的正則表達式epression因爲我不上很強大,但我想你應該有一個或更換,你的if語句讓編譯器在文本框不爲空的情況下檢查正則表達式。

if (txtRefno.Text.trim() == string.Empty || !Regex.IsMatch(txtRefno.Text, @"^[0-9]+$")) 
{ 
    msg.Text = "reference no. contain Invalid characters"; 
} 

,或者如果您不想顯示的情況下,消息的texbox是空的,你可以用下面的

if (txtRefno.Text.trim() != string.Empty && !Regex.IsMatch(txtRefno.Text, @"^[0-9]+$")) 
    { 
     msg.Text = "reference no. contain Invalid characters"; 
    } 
+0

'string.IsNullOrWhitespace()'可能是第一次測試要好。 – 2011-05-24 08:55:48

+0

是的,但只適用於Framework 4.0 – 2011-05-24 09:02:42

0

的問題是不是在你的正則表達式,但在第一部分你的布爾表達式。比較空字符串沒有意義。更改爲

txtRefno.Text!= 「」

相關問題