2013-03-28 68 views
-3

在asp.net我有,如果它與最終驗證文本框控件「的.aspx」,否則顯示錯誤消息 請指導我如何創建一個自定義的正則表達式對於這種情況。如何寫在asp.net我自己的正則表達式

+0

爲什麼不乾脆的.aspx如果缺少它,何必用戶提供錯誤信息?如果它是一個鏈接,爲什麼手動輸入它 - 也許它可以從列表中選擇。 – alxx 2013-03-28 09:18:10

回答

-1

您不必使用正則表達式,但如果你真的想嘗試:

MatchCollection matches = Regex.Matches(TextBox1.Text, ".*?\.aspx$"); 

       string[] var_matches = matches.Cast<Match>() 
             .Select(match => match.Value) 
             .ToArray(); 

if (var_matches.Length > 0) 
{ 
    // do stuff 
} 

編輯

如果你想使用ASP:的RegularExpressionValidator,然後嘗試:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ValidationExpression=".*?\.aspx$" ControlToValidate="TextBox1" 
    runat="server" ErrorMessage="Error!"></asp:RegularExpressionValidator> 
+0

.NET沒有一個方法'matches'通過'string'暴露做驗證。 – 2013-03-28 08:17:42

+0

你的答案仍是不正確 - 看看Regex.Matches'的'使用(這是不是事實,你指定的正則表達式作爲輸入)。 – 2013-03-28 08:23:12

+1

這是一個錯字,我修好了。 – enb081 2013-03-28 08:29:11

-1

你可以只取最後5個字符,並檢查他們,你不需要爲一個正則表達式....

(在這之前檢查長度...)

這是正則表達式:

".*?\.aspx$"

+0

我想用正則表達式驗證工具不被編碼 – Vinoth 2013-03-28 08:53:59

1

如果你在使用正則表達式死心塌地,你可以嘗試一些像如下:

private bool ValidateFilename(string input) 
{ 
    RegEx r = new RegEx(@".*?\.aspx$"); 
    return r.IsMatch(input); 
} 

RegEx不一定是這種情況下的最佳選擇,howe版本。

+0

不知道這筆交易就是用downvotes對答案的瘟疫,這個問題 - 正確回答不足原來的問題呢? – 2013-03-28 09:06:27