Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net (.|[\r\n]){11500}和^.{11500}之间的差异$_Asp.net_Regex - Fatal编程技术网

Asp.net (.|[\r\n]){11500}和^.{11500}之间的差异$

Asp.net (.|[\r\n]){11500}和^.{11500}之间的差异$,asp.net,regex,Asp.net,Regex,下面两个正则表达式的区别是什么 (.|[\r\n]){1,1500} ^.{1,1500}$ (.|[\r\n]){11500} ^.{1,1500}$ 不匹配新行。不匹配新行。第一个匹配最多1500个字符,第二个(假设您没有设置某些正则表达式选项)匹配最多1500个字符的第一行,没有新行。第一个匹配最多1500个字符,第二个匹配最多1500个字符(假设您没有设置某些正则表达式选项)匹配最多1500个字符的第一行,无换行符。第一个表达式匹配一些第一个表达式匹配一些如果一行包含1500个字符或更

下面两个正则表达式的区别是什么

(.|[\r\n]){1,1500} ^.{1,1500}$ (.|[\r\n]){11500} ^.{1,1500}$
不匹配新行。

不匹配新行。

第一个匹配最多1500个字符,第二个(假设您没有设置某些正则表达式选项)匹配最多1500个字符的第一行,没有新行。

第一个匹配最多1500个字符,第二个匹配最多1500个字符(假设您没有设置某些正则表达式选项)匹配最多1500个字符的第一行,无换行符。

第一个表达式匹配一些第一个表达式匹配一些如果一行包含1500个字符或更少,则第二个表达式匹配该行的前1500个字符行包含1500个字符或更少

如果它用于RegularExpressionValidator,您可能需要使用以下正则表达式:

^[\s\S]{1,1500}$
这是因为正则表达式可以在服务器(.NET)或客户端(JavaScript)上运行。在.NET正则表达式中,可以使用
RegexOptions.Singleline
标志(或其内联等价物,
(?s)
)使点匹配新行,但JavaScript没有这种机制

[\s\s]
匹配任何空白字符或任何非空白字符的字符——换句话说,任何字符。这是最流行的用于匹配任何内容(包括JavaScript中的换行符)的习惯用法;它比基于交替的方法(如
(.|\n)
的效率要高得多


请注意,如果您不希望用户将文本框保留为空,则仍然需要使用RequiredFieldValidator。

如果它用于RegularExpressionValidator,则可能需要使用以下正则表达式:

^[\s\S]{1,1500}$
这是因为正则表达式可以在服务器(.NET)或客户端(JavaScript)上运行。在.NET正则表达式中,可以使用
RegexOptions.Singleline
标志(或其内联等价物,
(?s)
)使点匹配新行,但JavaScript没有这种机制

[\s\s]
匹配任何空白字符或任何非空白字符的字符——换句话说,任何字符。这是最流行的用于匹配任何内容(包括JavaScript中的换行符)的习惯用法;它比基于交替的方法(如
(.|\n)
的效率要高得多


请注意,如果不希望用户将文本框留空,则仍需要使用RequiredFieldValidator。

如果指定
RegeOptions.SingleLine
。如果指定
RegeOptions,则需要使用SingleLine。如果指定
RegeOptions,则SingleLine
可以匹配所有字符。SingleLine
e是一个细微的区别;第一个匹配最多1500个字符,第二个匹配最多1500个字符。我正在对ASP.NET的多行文本框使用此选项。在safari中查看此选项时,我收到错误“无效正则表达式:正则表达式太大”两个或只有一个?第一个是safari 3.0中的错误。我需要做的是,我需要限制用户输入超过1500个字符,并需要显示错误消息。我正在为此使用正则表达式验证器。因此,您可以使用
(.|[\n]){11500}
(或使用
regexOptions.Multiline
)。您在其他Safari浏览器中尝试过吗?
可以匹配所有字符,如果您指定
RegexOptions.SingleLine
。但即使如此,还是有一个细微的区别:第一个匹配最多1500个字符,第二个匹配第一个最多1500个字符。我在Safari中查看时,正在对ASP.NET的多行文本框使用此选项我收到两个或其中一个的错误“无效正则表达式:正则表达式太大”?第一个是safari 3.0中的错误。我需要做的是,我需要限制用户输入超过1500个字符,并需要显示错误消息。我正在为此使用正则表达式验证程序。因此您可以使用
(.|[\n]){11500}
(或使用
regexOptions.Multiline
)。您是否在其他Safari浏览器中尝试过?…并且它(第二个)仅在字符串完全不包含换行符或选项
regexOptions时才会这样做。设置Multiline
,因为在其他情况下,
$
表示“字符串结束”而不是“行结束”.Ooo.感谢您捕捉到这一点……并且它(第二个)只有在字符串完全不包含换行符或者选项
RegexOptions时才会这样做。设置多行
,因为否则,
$
表示“字符串结束”,而不是“行结束”哦,谢谢你能听到。不要说第一个,但要说全部。不要说第一个,但要说全部。