Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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 如何转义生成“;错误的正则表达式;意外量词“;关于IE?_Asp.net_Regex_Internet Explorer - Fatal编程技术网

Asp.net 如何转义生成“;错误的正则表达式;意外量词“;关于IE?

Asp.net 如何转义生成“;错误的正则表达式;意外量词“;关于IE?,asp.net,regex,internet-explorer,Asp.net,Regex,Internet Explorer,我使用asp.net和C#。我有一个带有RegEx验证控件的文本框 我使用此代码作为验证 ValidationExpression="^(?s)(.){4,128}$" 但只有在IE9中,我才从javascript部分收到一个错误:意外的量词 可能我必须逃出我的正则表达式,但我不知道如何逃出,以及逃出什么 你能帮我一个代码示例吗?谢谢JavaScript不理解(?s)afaik,您可以用[^]或[\s\s]替换 例如:^[^]{4128}$改为这样写: ^([\s\S]){4,128}$

我使用asp.net和C#。我有一个带有RegEx验证控件的文本框

我使用此代码作为验证

ValidationExpression="^(?s)(.){4,128}$"
但只有在IE9中,我才从javascript部分收到一个错误:
意外的量词

可能我必须逃出我的正则表达式,但我不知道如何逃出,以及逃出什么


你能帮我一个代码示例吗?谢谢JavaScript不理解
(?s)
afaik,您可以用
[^]
[\s\s]
替换


例如:
^[^]{4128}$

改为这样写:

 ^([\s\S]){4,128}$
我怀疑(?s)是错误的原因。

有三个问题:(1)JavaScript不支持像
(?s)
)这样的内联修饰符,(2)没有其他方法在ASP验证器中传递修饰符,(3)这些事实都不重要,因为JavaScript不支持单行模式。大多数人使用
[\s\s]
匹配任何内容,包括JavaScript正则表达式中的换行符

编辑:以下是在您的情况下的外观:

ValidationExpression="^[\s\S]{4,128}$"

[\s\s]
是一个匹配任何空白字符(
\s
)或任何非空白字符(换句话说,任何字符)的字符。点(
)元字符匹配除换行符以外的任何字符。大多数正则表达式风格(如.NET)都支持“单线”或“点所有”模式,使点匹配换行符,但不支持JavaScript。

问题在于
(?s)
。该捕获组要匹配什么?感谢您的代码,但您为什么要添加\S?afaik\S是\S的负版本不是?是。这使得角色类几乎匹配所有内容,效果与(?s)完全相同。对于。我尝试了你的代码,我的错误消失了,你能确认你转义的版本和我之前发布的完全相同吗???这里是另一个链接帖子@GibboK是的,我在此确认这个表达式与你问题中的表达式完全相同。谢谢你的回答,我对JS一无所知,对RegEx知之甚少。你能发布你的代码吗?这样我就可以测试并批准答案了。谢谢艾伦。。即使是你的回答我也会接受,但不幸的是我只能接受一个。我投了你一票。是的,这就是用我所说的内容替换
,使它像使用
(?s)
一样工作的要点。