从Firefox 4开始,正则表达式会抛出""正则表达式太复杂"错误
As of Firefox 4, regular expression throws ""Regular expression too complex" error
我有以下电子邮件地址验证器,当要计算的字符串达到一定长度时,它不会计算并抛出上述错误:
^(['w'-]+)(['.'w'-'+]+)*@(['w'-]+'.){1,5}([A-Za-z]){2,4}$
很容易复制。将正则表达式与长电子邮件地址(如juicy.cakeballs2@cheeze-party.poonalicious.com
这个问题是Firefox 4+特有的
谁能建议也许一种方法来简化正则表达式或其他方式来解决这个问题?
它把我撕成碎片了,丽莎!问题在于重叠的类。[ab]+[abc]+
可以用许多不同的方式匹配"ababababc"。为了减少回溯,将其重构为[ab]+(c[ab]*)*
之类的东西。(我知道,重构后的表达式与原始表达式并不完全匹配相同的字符串。懒得贴一个合适的例子。谷歌"regex回溯",不,现在就买弗里德尔的书)。
为了记录,想要在JavaScript中"验证"我的电子邮件地址的表单大多数时候都失败了。我已经数不清有多少次我不得不创建一个临时电子邮件地址,只是为了能够完成购买或订阅。验证电子邮件地址的唯一可靠方法是尝试发送电子邮件。请不要再创建一个不完整的表单"validator"了。
技术上有效的地址:
*@example.com
me@had.to.create.a.temp.address.again.i.run.my.own.dns.example.net
you.forgot@domain.example.museum
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 用于删除两个“”之间的字符的正则表达式是什么/"在javascript中
- “”的正则表达式-"在javascript中
- 如何编写包含“”的正则表达式;A-Z”;以及“;a-z”;以及“;0-9”;以及“-"以及“_&”;
- 谷歌脚本:"正则表达式过于复杂"
- Javascript正则表达式查找不以“”开头的单词;我的:"
- Javascript正则表达式来检测字符串是否具有两个“@"字符
- "以及“;正则表达式中的条件
- 选择A之后的所有文本”#"带有正则表达式的符号
- javascript正则表达式"子字“;代替
- 正则表达式,查找不以="开头的URL's
- 如何保持“*/"在正则表达式中,避免被解释为块注释
- JavaScript正则表达式帮助:文本字符串中以"开头的行;在某某日期,一些其他东西写了"