2009-07-06 25 views

回答

3

你可以添加JavaScript /正則表達式驗證

正則表達式

^[a-zA-Z]{4}.* 
0

AFAIK有沒有內置的功能。 A 字母根據用戶文化可能意味着不同的事情。如果你的意思是ASCII字母,你可以測試這樣的:

bool IsASCIILetter(char letter) { 
    return letter >= 65 && letter <= 90 && letter >= 97 && letter <= 122; 
} 
0

如果這是您要驗證的輸入控件的內容,使用RegularExpressionValidator

這種情況可能是很簡單的只是使用正則表達式,但對於更復雜的驗證我會盡量避免正則表達式,因爲它們都太過複雜調試。正如有人比我更聰明的說'我有一個問題,我用正則表達式解決了。現在我有兩個問題'。即使你對正則表達式感到滿意,維護你的代碼的人可能不會。

更明確的代碼是一個更容易閱讀和維護:

bool IsValid (string code) { 
    if (code.Length != 8) 
     return false; 

    for (int i = 0; i < 4; ++i) { 
     if (!Char.IsLetter(code[i])) 
      return false; 
    } 
    return true; 
} 
1

怎麼樣Char.IsLetter

它有2所覆蓋:一個在那裏你傳遞一個char和一個地方你傳遞一個字符串和索引。

0

2個選擇:

選項1 - 檢查它在你的後臺代碼:

if (txtBox1.Text.Length >= 4 && txtBox1.Text.ToCharArray().Take(4).All(c => char.IsLetter(c))) 
    { 
     // success 
    } 
    else 
    { 
     // validation failed 
    } 

你沒有說明是否你執行的8長度或它的可選項, upto 8.您可以輕鬆添加此檢查。

選項2 - 使用帶有可選RequiredFieldValidator的RegularExpressionValidator。如果你決定走這條路線,你應該確切地知道你想要允許的最後4個字符,因爲下面這個例子允許任何東西,只限制前4個字母。此外,如果您想要強制執行長度爲8或不等,這將會有所不同。下面的這個是強制性的。使它可以有8個字符,你可以使用「[A-Za-z] {4}(。{4})?」代替。

<asp:TextBox ID="txtBox1" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="rfvtxtBox1" runat="server" ControlToValidate="txtBox1" ErrorMessage="txtBox1 is required!" Display="Dynamic">*</asp:RequiredFieldValidator>

<asp:RegularExpressionValidator ID="revtxtBox1" runat="server" ControlToValidate="txtBox1" ValidationExpression="[A-Za-z]{4}.{4}" ErrorMessage="First 4 characters must be a letter!" Display="Dynamic" />

,如果你不希望允許,因爲單獨的RegularExpressionValidator不會阻止空/空白條目的空白項需要一個RequiredFieldValidator。欲瞭解更多信息,請參閱my answer here

相關問題