gpt4 book ai didi

javascript - 正则表达式仅在 Safari 上失败

转载 作者:行者123 更新时间:2023-12-04 08:00:40 26 4
gpt4 key购买 nike

我有以下简单的电子邮件验证正则表达式:/(.+){2,}@(.+){2,}\.(.+){2,}/这在 Firefox、Chrome 等上运行良好,但在 Safari 上失败。
为什么这个完全有效的正则表达式会在 Safari 上失败?我在正则表达式中找不到 Safari 不支持的元素。

/(.+){2,}@(.+){2,}\.(.+){2,}/.test('123@abc.nl');
以上在 Safari 上失败,但在任何其他浏览器上都失败。

最佳答案

不同的正则表达式引擎对灾难性回溯倾向模式有不同的容忍度。
当您量化时,这是一种灾难性的回溯倾向模式 (.+){2,}使 (.+) 的量词匹配两次或更多次(即,匹配一次或多次两次或更多次,这使得它在非匹配模式下非常缓慢地失败。)
如果您打算匹配任何两个或多个字符,请量化 .模式而不是 .+一:

/.{2,}@.{2,}\..{2,}/
或者,使用现有的 email validation patterns. .

关于javascript - 正则表达式仅在 Safari 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66492332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com