2017-05-18 3 views
1

テキストボックスに入力した文字列を検証しようとしています。私は確かに、私はにErrorMessageはまだ発射02、04または09で始まる文字列を入力した場合は最初の2つの文字はどちらか02、04または09RegularExpressionValidator - 最初の2文字を確認します。

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

ていることを確認します。私は間違って何をしていますか?

+0

'ValidationExpression =" ^(02 | 04 | 09)。* "'を試してください。ところで、テキストボックスは複数行か単一行ですか? –

+0

完璧!ありがとうございます – Dave

+0

あなたは '^ 0 [249]。*'グループの外で '0'を動かすことさえできます。 –

答えて

2

ValidationExpression正規表現はデフォルトでアンカーされているため、入力全体を一致させる必要があります。あなたは.*で0+文字を一致させることがあります。

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

が、それはもう少し "エレガント" にするために、あなたは0[249]^後に使用することができます:

ValidationExpression = "^0[249].*" 

式が一致した

  • ^ - 文字列アンカーの開始
  • 0 - 0
  • [249]
  • - 文字クラスのマッチングのいずれか 2または 4または 9
  • .* - 改行文字以外の任意の0+文字。

あなたtextobxが複数行であれば、あなたは(?s)単一行/ DOTALL修飾子

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

または使用する必要があります(をクライアント側の検証を可能にするために、(?s)はJavaScriptでサポートされていません):

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

ここで、[\s\S]は、改行文字を含む任意の文字と一致します。

関連する問題