我想使用ASP.NET RegularExpressionValidator来限制文本框中的单词数。 (RegularExpressionValidator是我最喜欢的解决方案,因为它将同时进行客户端和服务器端检查。)
那么将正确的正则表达式放入RegularExpressionValidator中,它会计算单词并强制执行单词限制?比方说,150字。
(注意:我看到this question是相似的,但给出的答案似乎也依赖于Split()之类的代码,所以我认为它们中的任何一个都不能插入RegularExpressionValidator这就是为什么我再问一次)
答案 0 :(得分:5)
由于^
和$
为implicitly set with RegularExpressionValidators,请使用以下内容:
(\S*\s*){0,10}
这里的0允许空字符串(更具体地说是0个字),150是要接受的最大字数。根据需要调整这些以增加/减少接受的单词数。
上述正则表达式并非贪婪,因此您将获得与您引用的问题中给出的更快的匹配。 (\b.*\b){0,10}
是贪婪的,所以当你增加单词数量时,你会看到性能下降。
答案 1 :(得分:1)
以下是正则表达式的快速参考: http://msdn.microsoft.com/en-us/library/az24scfc.aspx
您可以使用此站点测试表达式: http://regexpal.com/
这是我的正则表达式示例,它适用于最小和最大字数(并修复了前导间距的错误):
^\s*(\S+\s+|\S+$){10,150}$
答案 2 :(得分:0)
检查此网站:
http://lawrence.ecorp.net/inet/samples/regexp-validate.php#count
它的javascript正则表达式,但与asp.net非常相似
它是这样的:
(\苯并[a-Z0-9] + \湾*){4,}