我使用RegularExpressionValidator
来限制TextArea
中输入的文字数量。表达式为"^[\s\S]{0,750}$"
。这几乎完美无缺,但我注意到了一些奇怪的行为。
如果我输入749个字符和一个换行符(或748个字符和两个换行符等),我会看到浏览器之间看似不正确和不一致的行为。我猜这与换行不一致为1个字符或2个(CR& LF)有关。
IE 8 - 客户端验证失败,因为它(正确地)被视为751个字符,并且无法提交页面。 IE 9& Firefox - 客户端验证通过并发布值。但是,在回发时会显示验证错误消息。但是仍然接受该值,这是错误的,因为我最终得到了751个字符。
有人知道造成这种情况的原因以及如何将文本区域限制为N个字符吗?
修改:修正了正则表达式
编辑:关注此事。很难确定RegularExpressionValidator的工作原理,所以我只是将其切换为自定义验证器并手动进行正则表达式检查。这解决了这个问题。