2009-06-09 19 views
7

RegularExpressionValidatorを使用して文字列の長さを400文字に制限する必要があるという問題があります。文字列の長さを制限する正規表現

私の表現だった.{0,400}

私の質問:考慮空白を考慮することなく、400文字までの長さを制限する方法はありますか?

文字列の空白を受け入れることはできますが、長さは数えません。これは可能ですか?

+0

これは厳密に正規表現では可能ではありませんが、多くの言語であります。これをどの言語で実装しようとしていますか? – Copas

+0

RegularExpressionValidatorコントロールをasp.net Webアプリケーション(vb.net)で使用しています。 – Boopid

答えて

11

は、私はかなりグレッグに同意するが、ここであなたがしたい正規表現です:

^\s*([^\s]\s*){0,400}$ 

@Boopid:あなたは本当に唯一の空白文字を意味している場合、正規表現でスペースで\ sのを交換してください。

+0

[^]の代わりに[^ \ s]にする必要はありませんか?それ以外:素敵! – Stephan202

+0

(または質問者は「空白」は実際には空白文字のみを意味しますか?) – Stephan202

+2

または単に[^ \ s]の代わりに\ Sです。 –

7

RegularExpressionValidatorを使用するのではなく、独自のバリデータークラスを作成すると思うかもしれません。正規表現は確かにその用途を持っていますが、これはそのようなものではありません。

カスタムバリデーターはすべてのスペースを削除してから、文字列の長さを確認することができます。最終的には、同じことをする正規表現よりもコードが読みやすくなります。

+0

私は同意する、すべての空白を削除し、文字列の長さを確認してください。上記の正規表現と比較して、おそらく非常に効率的です(これは単なる理論に過ぎません)。 –