2013-08-01 29 views
2

我試圖驗證文本框用於在用戶註冊頁面的用戶名。條件是:可以1 TextBox有2個RegularExpressionValidator?

  1. 第一個字符應該是大寫字母。
  2. 長度最大爲8個字符應。

我使用的是的RegularExpressionValidator檢查在同一時間兩個條件,但這會導致同樣的錯誤信息:"Username should be maximum 8 characters long and start with an uppercase letter."

我想顯示基於上述條件的具體錯誤信息,說:

  • 條件1:用戶名應以大寫字母開頭。
  • 條件2:用戶名應該是最多8個字符長。

我想這兩個條件都不滿足時出現錯誤消息。

這是我本次代碼:

<asp:TextBox ID="username" runat="server" CssClass="InputText"></asp:TextBox> 
<asp:RequiredFieldValidator ID="rfvUsername" runat="server" 
    ControlToValidate="username" Display="Dynamic" 
    EnableClientScript="true">Username is required 
</asp:RequiredFieldValidator> 
<asp:RegularExpressionValidator 
    ID="revUsername" runat="server" Display="Dynamic" 
    ControlToValidate="username" 
    ValidationExpression="[A-Z][A-Z0-9]{0,7}" > 
     Username should be max 8 characters long 
     and should start with an alphabet. 
</asp:RegularExpressionValidator> 

如何實現這一目標?

+0

而第一個字母已經連接到同一個元素2個獨立的驗證不爲你工作? – Icarus

+0

不,它不。我甚至嘗試在第二種情況下添加CustomValidator,即使它不提供所需的輸出。 – hima

+0

它適合我。我只是測試它。如果我提交表單留空的用戶名字段,我會得到:'用戶名是必需的'。如果我輸入一些東西,提交表單,我得到:'用戶名應該是最長爲8個字符,並應與alphabet.' – Icarus

回答

1
<asp:TextBox ID="username" runat="server" MaxLength="8" CssClass="InputText"></asp:TextBox> 
<asp:RequiredFieldValidator ID="rfvUsername" runat="server" 
    ControlToValidate="username" Display="Dynamic" 
    EnableClientScript="true">Username is required 
</asp:RequiredFieldValidator> 

大寫 Regex to check if the first character is uppercase

+0

有意義:) – hima

+0

非常感謝你希馬 – SK2185

相關問題