看起来像一个简单的任务 - 获取一个测试字符串特定长度的正则表达式: ^。{1500} $
但是如果一个字符串的“\ r \ n”比上面的匹配总是失败!
正确的正则表达式应该如何接受新行字符作为字符串的一部分?
我有<asp:TextBox TextMode="Multiline">
并使用RegularExpressionValidator来检查用户输入内容的长度。
谢谢你, 安德烈
答案 0 :(得分:12)
验证输入时,您可以使用RegexOptions.Singleline
选项。这将输入视为单行语句,并将其解析为。
否则,您可以尝试使用以下表达式:
^(.|\s){1,500}$
这应该适用于多行输入。
答案 1 :(得分:0)
在检查字符串的长度之前,你能剥掉换行符吗?验证服务器端时很容易做到。 (在.net中你可以使用自定义验证器)
但是,从UX的角度来看,我也会实现一个客户端“字符计数器”。有很多东西可以找到。 jQuery有一些选择。然后,您可以将自定义验证程序实现为仅运行服务器端,然后使用字符计数器作为客户端验证。用户可以更好地查看他们在打字时留下了多少个字符。
答案 2 :(得分:0)
无法设置RegexOptions让你搞砸了。由于这是在RegularExpressionValidator中,您可以尝试在正则表达式中设置选项。
我认为这应该有效:
(?s)^.{1,500}$
(?s)部分打开Singleline选项,这将允许点匹配包括换行符在内的每个字符。为了它的价值,the article here also lists the other RegexOptions以及将它们设置为内联语句所需的符号。