regularexpressionValidatorを使用して単語数を制限しますか?
-
20-09-2019 - |
質問
ASP.NET RegularExpressionValidatorを使用して、テキストボックス内の単語の数を制限したいと思います。 (RegularexpressionValidatorは、クライアントとサーバーサイドの両方のチェックを実行するため、私の好まれたソリューションです)。
それでは、単語を数えて単語制限を強制するRegularexpressionValidatorに入れるための正しい正規表現は何でしょうか?たとえば、150ワードとしましょう。
(NB:わかりました この質問 似ていますが、与えられた答えはsplit()などのコードにも依存しているように見えます。そのため、それらのどれもレギュラリクスププレッシャーバリダーターに接続できるとは思いません。
解決
以来 ^
と $
は RegularexpressionValidatorsで暗黙的に設定します, 、以下を使用してください。
(\S*\s*){0,10}
ここでの0は、空の文字列(より具体的には0ワード)を許可し、150は最大数の単語を受け入れることができます。受け入れられている単語の数を増や/減らすために、必要に応じてこれらを調整します。
上記の正規表現は非グリーディであるため、参照される質問で与えられた詩をより速い一致の詩を得ることができます。 (\b.*\b){0,10}
貪欲なので、単語の数を増やすと、パフォーマンスが低下します。
他のヒント
これが正規表現の簡単な参照です:http://msdn.microsoft.com/en-us/library/az24scfc.aspx
このサイトを使用して、式をテストできます。http://regexpal.com/
これは、最小ワードカウントと最大ワードカウントの両方で機能する私の正規表現の例です(そして、主要な間隔でバグを修正します):
^\s*(\S+\s+|\S+$){10,150}$
このサイトを確認してください:
http://lawrence.ecorp.net/inet/samples/regexp-validate.php#count
そのjavascript regexですが、asp.netに非常に似ています
そのようなもの:
( b [a-z0-9]+ b。*){4、}