2017-01-19 12 views
1

私のバリデータは、アプリケーションがクラッシュするため、空白を1つ以上入力しないようにします。そして最大25文字、これのための正規表現は何ですか?asp net空白を許可しない正規表現

<asp:RegularExpressionValidator ValidationGroup="grpSearch" ID="valSearch" ControlToValidate="txtSearchFor" ValidationExpression="^[a-zA-Z0-9][a-zA-Z0-9 ]+$" runat="server" ForeColor="Red"/> 

私が試した表現は動作しません。

+0

はスペースが表示されます文字列の最後に?それはあなたのパターンからは明らかではありません。 –

+0

文字列がうまくいればはいですが、空白が1つ以上存在しない場合は空白になりません。 – Malphai

答えて

2

あなたは

ValidationExpression="^(?!.{26})[a-zA-Z0-9]+([a-zA-Z0-9]*)?$" 

regex demoを参照してください使用することができます。

詳細

  • ^ - ストリング
  • (?!.{26})の開始 - (のみ25より少ない)不可26文字
  • [a-zA-Z0-9]+ - 1+英数字文字
  • ([a-zA-Z0-9]*)? - オプションのグループスペースと0文字以上の英数字を一致させます。
  • $ - それは興味があるだけの場合には、文字列

の終わり:文字列の末尾にスペースを許可しないように、*数量詞(ゼロ以上の出現は)+数量詞(と交換する必要があります以上の出現)。

+0

これは奇妙です、私はまだ複数の空白を入力することができます。何故ですか?また、*を入力することはできません。私は彼らにできるようにしたい! – Malphai

+0

ユーザーはアスタリスクを入力しますか?しかしあなたのパターンにアスタリスクはありません。 1つ以上のスペースを入力することができれば、そこに問題はありますが、正規表現はそれを許可しません。アスタリスクを許可するには、パターンに追加するだけです: '" ^(?!。{26})[a-zA-Z0-9 *] +([a-zA-Z0-9 *] *)?$ "' –

0

これを試してみてください:

^[^ ]+ [^ ]+$ 

これは、同様のテーマであるが、唯一の英数字のためのあなたの必要性を主張する:

^(A-Za-z0-9|[^ ])+ (A-Za-z0-9|[^ ])+$ 

ここでテスト:https://regex101.com/r/3w6B6h/3

関連する問題