正则表达式验证器不允许\ w的非英语字符

Rah*_*hul 6 javascript asp.net controls

我的页面中有电子邮件字段,我正在使用我的asp.net提供的正则表达式验证器进行验证.我正在使用与电子邮件验证器一样的验证表达式,即

ValidationExpression ="\ w +([ - +.']\w +)@\w +([ - .]\w +).\ w +([ - .]\w +)*"

它工作正常,但当我尝试提供非英文字母时出现问题,例如

èéüûă等

但我的问题是,当我在javascript中使用相同的表达式时,它允许这些字符,即使在服务器端,同样的表达式也允许这些字符.

我认为'\ w'允许所有字母数字字符以及非英文字符,但我不知道为什么在验证器中使用它时不允许.

如果我做错了,请建议.

Jan*_*oom 1

这是 ECMAScript 标准的限制;.NET 中的 fe\\w也匹配非英语字符。

\n\n

最简单的解决方案是在使用 ASP.NET 时关闭客户端验证,这样服务器端验证器(使用 .NET 实现)将进行相应的验证。

\n\n
\n\n
var r = new Regex(@"\\w");\nforeach(var m in r.Matches("\xc3\xa8 \xc3\xa9 \xc3\xbc \xc3\xbb a"))\n      Console.WriteLine(m);\n\nOutput:\n\xc3\xa8\n\xc3\xa9\n\xc3\xbc\n\xc3\xbb\na\n
Run Code Online (Sandbox Code Playgroud)\n