4

ASP.NET RegularExpressionValidator を使用して、テキスト ボックス内の単語数を制限したいと考えています。(RegularExpressionValidator は、クライアント側とサーバー側の両方のチェックを行うため、私のお気に入りのソリューションです)。

では、単語を数えて単語制限を適用する RegularExpressionValidator に入れる正しい正規表現は何でしょうか? たとえば、150語です。

(NB:この質問は似ていると思いますが、与えられた答えはSplit()などのコードにも依存しているように見えるので、それらのいずれもRegularExpressionValidatorにプラグインできるとは思わないため、もう一度尋ねます)

4

3 に答える 3

5

^$RegularExpressionValidators で暗黙的に設定されるため、次を使用します。

(\S*\s*){0,10}

ここで 0 は空の文字列 (具体的には 0 単語) を許可し、150 は受け入れる単語の最大数です。必要に応じてこれらを調整して、受け入れられる単語数を増減します。

上記の正規表現は貪欲ではないため、参照する質問で指定されたものよりも迅速な一致が得られます。(\b.*\b){0,10}貪欲なので、単語数を増やすとパフォーマンスが低下します。

于 2009-10-06T17:20:00.727 に答える
1

正規表現のクイック リファレンスは次のとおりです: http://msdn.microsoft.com/en-us/library/az24scfc.aspx

次のサイトを使用して式をテストできます: http://regexpal.com/

以下は、最小ワード数と最大ワード数の両方で機能する正規表現の例です (先頭のスペースのバグを修正します)。

^\s*(\S+\s+|\S+$){10,150}$
于 2012-11-15T14:49:44.417 に答える
0

このサイトをチェックしてください:

http://lawrence.ecorp.net/inet/samples/regexp-validate.php#count

JavaScript RegEx ですが、asp.net に非常に似ています。

それは次のようなものです:

(\b[a-z0-9]+\b.*){4,}
于 2009-10-06T17:22:03.473 に答える