我试图将每个帖子的用户限制在 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
(很多换行符或空格)
正则表达式可能不是要走的路吗?如果是这样,我如何在正则表达式评估之前搜索和替换字符串(同时仍然使用旧表达式在验证器中捕获它)?