使用RegularExpressionValidator来限制字数?

时间:2009-10-06 17:09:21

标签: asp.net regex validation word-count

我想使用ASP.NET RegularExpressionValidator来限制文本框中的单词数。 (RegularExpressionValidator是我最喜欢的解决方案,因为它将同时进行客户端和服务器端检查。)

那么将正确的正则表达式放入RegularExpressionValidator中,它会计算单词并强制执行单词限制?比方说,150字。

(注意:我看到this question是相似的,但给出的答案似乎也依赖于Split()之类的代码,所以我认为它们中的任何一个都不能插入RegularExpressionValidator这就是为什么我再问一次)

3 个答案:

答案 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,}