gpt4 book ai didi

javascript - 使用 RegEx 替代条件语句

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:17 25 4
gpt4 key购买 nike

我想先说明一下我对 RegEx 知之甚少。

我正在尝试让以下 RegEx 与 Javascript/Typescript 一起工作:

/^({)?(?(1)|(\()?)[0-9A-F]{8}(-)?([0-9A-F]{4}(?(3)-)){3}[0-9A-F]{12}(?(1)}|(?(2)\)))$/i

这是用于确定字符串是否为有效 GUID 的正则表达式(以任何正确的形式;如此处所示:https://stackoverflow.com/a/136591)。它适用于 Python 和 PHP,但不适用于 Javascript,因为它不支持条件。您将如何以 Javascript 可以使用它的方式编写它?

你可以在这里测试: https://regex101.com/r/rosi2k/1/tests

最佳答案

您不能使用条件,所以唯一的选择是扩展已经存在的内容。从最里面的组 (3) 开始,您可以将以下部分转换为其扩展对应部分:

(-)?([0-9A-F]{4}(?(3)-)){3}
(?:-([\dA-F]{4}-){3}|[\dA-F]{12})

现在唯一剩下的就是展开围绕正则表达式其余部分的第 1 组和第 2 组:

^(?:{[\dA-F]{8}(?:-([\dA-F]{4}-){3}|[\dA-F]{12})[0-9A-F]{12}}|\([\dA-F]{8}(?:-([\dA-F]{4}-){3}|[\dA-F]{12})[0-9A-F]{12}\)|[\dA-F]{8}(?:-([\dA-F]{4}-){3}|[\dA-F]{12})[0-9A-F]{12})$

它很丑,但它适用于您的测试 as shown here

关于javascript - 使用 RegEx 替代条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49016952/

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