投稿ごとにユーザーを 5 から 1024 文字に制限しようとしています。
現在、これにはasp.net RegularExpressionValidatorを使用しています。
式を次のように設定すると、これはちょっとうまくいきます。
body.ValidationExpression = string.Format("^[\\s\\S]{{{0},{1}}}$",
MinimumBodyLength,
MaximumBodyLength);
ただし、これは NewLines と先頭/末尾/複数のスペースを考慮していません。したがって、ユーザーは次のようなものを入力できます: Ok (3 つのスペース)。(ドット) であり、3 つのスペースが文字としてカウントされるため、引き続き検証されます。同じことが改行にも当てはまります。を 1 つ入力することもできます。(ドット) の後に 5 つのスペース/改行が続きます。
Web で見つけた複数の正規表現のバリエーションを試しましたが、私のニーズにぴったり合うものはないようです。最低 5 文字、最大 3000 文字を入力してもらいたいのですが、使用する newLines とスペースの数はあまり気にしません。
明確にするために、私は人々がタイプできるようにしたい:
Hi,
My name is ben
次のように入力できるようにしたくありません。
Hi .
また
A B
(多くの改行またはスペース)
正規表現が適していない可能性はありますか? もしそうなら、正規表現が評価される前に文字列を検索して置換するにはどうすればよいですか (バリデーターで古い式でキャッチします)?