gpt4 book ai didi

javascript - 为什么这一行会导致 Javascript 崩溃?

转载 作者:搜寻专家 更新时间:2023-10-31 23:13:13 25 4
gpt4 key购买 nike

Chrome/NodeJS 中的这一行导致它崩溃。怎么会?

在 Chrome 中,它会导致浏览器选项卡挂起且没有错误消息。

"www.asite.com/clothes-intimates-bras-bralettes/sub5-sub6-sub7-sub8".replace(/.*?([\w\s-]*)+\/?$/, 'www.asite.com/product/$1')

最佳答案

这可能有助于分段检查您的正则表达式以了解正在发生的事情。这是原件。

.*?([\w\s-]*)+\/?$

以及分割:

.*?

. = 任何东西,* = 零个或多个,以及? = 非贪婪。

([\w\s-]*)+

() = 捕获,[] = 一组,\w = 字母数字,\s = 空格,- = 破折号,* = 零个或多个,+ = 一个或多个。

\/?

? = 可能发生也可能不发生。

所以本质上,您是在要求匹配任何后跟一组可能为空的字符、空格或破折号的内容,这些字符、空格或破折号必须出现一次,然后可能后跟一个固定在输入字符串末尾的斜线。可变长度匹配 .* ([\w\s-]*)+ 在正则表达式引擎开始回溯时创建一个潜在的无限匹配集。

您的表达式与 null(空字符串)匹配以及与 -sub8 匹配以及与 www.asite.com/clothes-intimates-bras-bralettes/sub5 匹配-sub6-sub7-sub8。或者它可以匹配.*?什么都没有,然后是 7000 ([\w\s-] *) 捕获什么都没有(记住 * 意味着什么都没有),然后是最后一个字符 '8' 的最终([\w\s-] *)捕获......抱歉打扰了,我只是想让您直观地了解 ([] *)+ 样式捕获的重要性。

该表达式似乎是没有将您打算匹配的内容正确翻译成正则表达式模式的结果。你想达到什么目的?

关于javascript - 为什么这一行会导致 Javascript 崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23902060/

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