Regex验证(RegularExpressionValidator和Javascript)不起作用
Regex validation (RegularExpressionValidator and Javascript) not working
我遇到了Asp:RegularExpressionValidator的问题。当验证(客户端)发生时,它显示浏览器中的[无效限定符]错误。我认为,这与一些逃跑角色有关,但尝试了几次后就没能成功。所以,寻求帮助!!!!
regex是关于验证电子邮件地址的,可以从http://msdn.microsoft.com/en-us/library/01escwtf%28v=vs.90%29.aspx#Y0.更重要的是,如果这个链接没有打开,regex就像这个
^(?("")(""[^""]+?""@)|(([0-9a-zA-Z](('.(?!'.))|[-!#'$%&''*'+/='?'^`'{'}'|~'w])*)(?<=[0-9a-zA-Z])@))(?('[)('[('d{1,3}'.){3}'d{1,3}'])|(([0-9a-zA-Z][-'w]*[0-9a-zA-Z]'.)+[a-zA-Z]{2,6}))$
有人能建议如何解决这个问题并使验证正常工作吗?
注意:我已经尝试过用Javascript代码直接粘贴regex,看看它是否在那里工作。为测试而编写的代码类似于,var match=new RegExp(emailRegex).exec(emailAddressValue);
另一个注意事项:将正则表达式粘贴到C#代码中,并使用regex在服务器端执行验证,效果很好!因此,javascript和regex确实有些问题无法正常工作。
我不是C#爱好者,但这看起来不像是标准的正则表达式转义引号。。。试试这个:
^(?:('")('"[^'"]+?'"@)|(([0-9a-zA-Z](('.(?!'.))|[-!#'$%&''*'/='?'^`'{'}'|~'w])*)(?<=[0-9a-zA-Z])@))(?:('[)('[('d{1,3}'.){3}'d{1,3}'])|(([0-9a-zA-Z][-'w]*[0-9a-zA-Z]'.)+[a-zA-Z]{2,6}))$
在这里看到它的作用,(非常奇怪的捕获组…)
我怀疑问题出在模式语法上,javascript不支持look-behind。就我个人而言,这个模式看起来有点过于明确。正如前面提到的,电子邮件地址RFC是非常宽松的。
我注意到您的模式还要求域的结尾最多为6个字符。如果你真的想涵盖所有的边缘案例,你必须考虑像博物馆TLD 这样的东西
就我个人而言,我发现像这样更宽容的模式更有效。
'S+@('w+'.)+[a-zA-Z]{2,}
- 幻灯片滚动javascript不起作用
- 当我在浏览器中打开HTML文件时,javascript不起作用
- 来自MDN的循环示例的JavaScript不起作用
- 在IE中切换javascript不起作用的复选框
- 在SVG中创建带有外来对象的文本区域的Javascript不起作用
- 寻呼<李>javascript不起作用
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 从Android设备浏览时Javascript不起作用
- 在 Javascript 不起作用的情况下为数字添加逗号
- 获取PHP变量的JavaScript不起作用
- 有些JavaScript不起作用
- 保存HTML文件后,Javascript不起作用
- onClick javascript不起作用
- 在Wicket ModalWindow中使用Panel时,HTML中的Javascript不起作用
- Jquery顶部的两行Javascript不起作用
- 当我通过Node服务器提供HTML时,为什么我的页面Javascript不起作用
- Javascript不起作用,但当放置断点并从chrome调试器工具中单击文件时,它可以正常工作
- 为不同的屏幕分辨率加载css样式的Javascript不起作用
- 在IE9中javascript不起作用,但在打开控制台后它就起作用了
- 为什么Javascript不起作用