RegularExpressionValidator

RegularExpressionValidator

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

那么放入RegularExpressionValidator中的正确正则表达式将是什么呢?例如,说150个字。

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

最佳答案

由于^$implicitly set with RegularExpressionValidators,请使用以下命令:

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


这里的0允许空字符串(更具体地说是0个单词),而150是可以接受的最大单词数。根据需要调整这些值以增加/减少接受的单词数。

上面的正则表达式是非贪婪的,因此您会比参考问题中给出的匹配更快。 (\b.*\b){0,10}是贪婪的,所以随着单词数的增加,性能会下降。

10-06 06:40