FF+Firebug报错“正则表达式太复杂”,IE崩溃,Chrome挂起
FF+Firebug got an error "Regular Expression too complex", IE crashed and Chrome hung
根据这个http://www.utexas.edu/its/help/domain-name-hosting-and/847然后我做了这个正则表达式:
/^[a-z]('w+'.?'w*[a-z0-9]){5,17}@[a-z]((a-z0-9'-]{1,25}'.[a-z]{2,4})|([a-z0-9'-]{1,25}'.[a-z]{2,3}'.[a-z]{2,3}))$/;
抛出这个值:
asdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbn@yahoo.com
Firefox + firebug说"正则表达式太复杂",IE崩溃和Chrome挂起,是有什么问题的正则表达式?
缺失[
] /^[a-z]('w+'.?'w*[a-z0-9]){5,17}@[a-z]((
here [
a-z0-9'-]{1,25}'.[a-z]{2,4})|([a-z0-9'-]{1,25}'.[a-z]{2,3}'.[a-z]{2,3}))$/;
试试这个(你的解决方案打印错误):
^[a-z]('w+'.?'w*[a-z0-9]){5,17}@[a-z](([a-z0-9'-]{1,25}'.[a-z]{2,4})|([a-z0-9'-]{1,25}'.[a-z]{2,3}'.[a-z]{2,3}))$
我想你把(a-z0-9'-]{1,25}
里的[
给忘了
这里的实际问题(忽略缺失的[
)是您有一个贪婪限定符(/w+
和/w*
),后面跟着一个范围({5,17}
)
意思是:
- 查找任意数量的
'w
字符 - 过滤器降至5-17
引擎只在找到"任意数字"后才进行过滤,并且在这里变得非常困惑…
这是一个奇怪的表达:('w+'.?'w*[a-z0-9]){5,17}
的{5,17}
应该几乎肯定是在部分,而不是整个东西。
如果有人有像john.doe@media.company.info或jane.doe@company.office这样的电子邮件地址怎么办?
试试这个:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:'.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:['x01-'x08'x0b'x0c'x0e-'x1f'x21'x23-'x5b'x5d-'x7f]|''['x01-'x09'x0b'x0c'x0e-'x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|'[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:['x01-'x08'x0b'x0c'x0e-'x1f'x21-'x5a'x53-'x7f]|''['x01-'x09'x0b'x0c'x0e-'x7f])+)'])
http://regexpal.com/
- 为什么这在IE中的工作方式与在Firefox中不同
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- IE 10在web应用程序中崩溃
- AngularJS应用程序使IE开发工具崩溃
- IE 7 在调用 JavaScript 函数时崩溃
- 调试 IE 崩溃
- OpenLayers Measure函数使IE崩溃
- IE 9表单提交崩溃
- 当将视图模型属性绑定到输入文本框时,它会在IE中崩溃
- FusionCharts在FireFox和IE上崩溃
- 为什么这个HTML会使IE崩溃?
- html2canvas在ie浏览器中崩溃
- jquery .change功能使脚本在IE中崩溃
- FF+Firebug报错“正则表达式太复杂”,IE崩溃,Chrome挂起
- jQuery IE 9在替换"tbody"时崩溃;值,单击其中的元素后
- IE 8(ONLY)在JavaScript/jQuery调用插件时崩溃
- 如何持续崩溃IE 10和11?重现“Internet Explorer 关闭并重新打开选项卡”
- 非常奇怪的IE崩溃问题与样式表javascript对象
- IE 11“崩溃”使用动态SVG元素时
- IE 7崩溃并关闭,没有任何消息