我的asp.net页面上有一个正则表达式验证器,它验证了密码。正则表达式是
^(?=.*[0-9])(?=.*[a-zæøåA-ZÆØÅ])[a-zA-ZæøåÆØÅ0-9]{6,}$
..现在,它在IE8和FF3中工作正常,但无论我在IE7中尝试什么,它都会验证为false。有没有知道的错误,我应该知道这里? :S
提前致谢..
答案 0 :(得分:1)
您需要对实体进行编码。请尝试以下方法:
^(?=.*[0-9])(?=.*[a-z\xE6\xF8\xE5A-Z\xC6\xD8\xC5])[a-zA-Z\xE6\xF8\xE5A-Z\xC6\xD8\xC50-9]{6,}$
答案 1 :(得分:1)
似乎IE7不喜欢字符串末尾的{6,}。在网络上发现了一些关于此的文章。无论如何,解决方案是将它自己放在一个区域:)
^(?=.{6,}$)(?=.*[0-9])(?=.*[a-zæøåA-ZÆØÅ])[a-zA-ZæøåÆØÅ0-9]*
答案 2 :(得分:0)
看起来您的示例存在一些编码问题。除非您必须在客户端使用它,否则我建议使用一个验证的CustomValidator,它通过OnServerValidate事件处理程序执行您的逻辑。在服务器端进行验证可以使您避免使用javascript正则表达式跨浏览器兼容性怪异。
答案 3 :(得分:0)
我也遇到过Internet Explorer 7的问题。
这是我能够使用的,需要8个字符,带有数字和数字(允许空格):
(?!^[0-9]*$)(?!^[ a-zA-Z!@#$%^&*()_+=<>?]*$)^([ a-zA-Z!@#$%^&*()_+=<>?0-9]{8,20})$