我正在尝试限制用户在每篇文章中只能使用5到1024个字符。
我们目前正在使用asp.net RegularExpressionValidator来实现此功能。
如果我将表达式设置为以下内容,它就有点起作用了:
body.ValidationExpression = string.Format("^[\\s\\S]{{{0},{1}}}$",
MinimumBodyLength,
MaximumBodyLength);
然而,这不考虑换行和前导/尾随/多个空格。因此,用户可以输入像这样的内容:Ok (三个空格) . (句号),并且它仍将被验证,因为三个空格计为字符。换行也是如此。我们还可以输入一个单独的.(句号),后面跟着5个空格/换行符。
我尝试了在网上找到的多个正则表达式变体,但似乎没有完全符合我的需求。我希望他们最少输入5个字符,最多3000个字符,但我并不在意他们使用多少换行符和空格。
澄清一下,我希望人们能够输入:
Hi,
My name is ben
我不希望他们能够输入:
Hi .
或者
A B
(很多换行或空格)
有可能正则表达式不是最好的选择?如果是这样,那么在正则表达式评估之前如何对字符串进行搜索和替换(同时仍然使用旧表达式在验证器中捕获)?