4

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

那么,正确的正则表达式将是什么放入将计算单词并强制执行字数限制的 RegularExpressionValidator 中呢?比如说,150 个单词。

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

4

3 回答 3

5

由于^and$使用 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/

Here is my regex example that works with both minimum and maximum word count (and fixes bug with leading spacing):

^\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 回答