2017-05-18 53 views
1

我想驗證輸入到文本框中的字符串。我想,以確保前兩個字符或者是02,04或09.RegularExpressionValidator - 驗證前2個字符

<asp:RegularExpressionValidator Display = "Dynamic" ControlToValidate = "check_number" ID="rxvValidCheckNumber1" ValidationExpression = "^(02|04|09)" runat="server" ErrorMessage="Valid Check Number required."></asp:RegularExpressionValidator> 

如果我輸入與02,04或09的ErrorMessage仍是起火開始的字符串。我究竟做錯了什麼?

+0

嘗試'ValidationExpression =「^(02 | 04 | 09)。*」'。順便說一句,是文本框多行或單行? –

+0

完美!非常感謝 – Dave

+0

,你甚至可以將'0'移到組外'^ 0 [249]。*' –

回答

2

ValidationExpression正則表達式是由默認的停靠,因而需要在整個輸入相匹配。您可以與.*匹配0+字符:

ValidationExpression = "^(02|04|09).*" 

爲了讓更多的 「優雅」,你可以使用0[249]^

ValidationExpression = "^0[249].*" 

的表達式匹配

  • ^ - 字符串錨的起始點
  • 0 - a 0數字
  • [249] - 字符類匹配任一249
  • .* - 比換行符字符以外的任何字符0+。

如果您textobx是,你需要使用(?s)單線/ DOTALL修飾符

ValidationExpression = "(?s)^0[249].*" 

或(啓用客戶端驗證,(?s)沒有在JavaScript支持):

ValidationExpression = "^0[249][\s\S]*" 

其中[\s\S]匹配包括換行符char的任何字符。