gpt4 book ai didi

使用模式中转义字符的 JSON(模式)验证失败

转载 作者:行者123 更新时间:2023-12-04 03:50:45 24 4
gpt4 key购买 nike

以下 JSON 对象有效:

{
"foo": "bar",
"pattern": "^(\/?[-a-zA-Z0-9_.]+)+$"
}

而这个是 不是 :
{
"foo": "bar",
"pattern": "^(\/?[-a-zA-Z0-9_.]+)+\.jpg$"
}

这是逃脱的 ( \. ),但我不明白为什么这不应该是有效的 JSON。我需要在我真正的 JSON 模式中包含这样的模式。那里的正则表达式要复杂得多,并且没有办法错过 excaping,尤其是点。

顺便说一句,转义字符类中的连字符,例如 [a-z\-]也会破坏验证。

我该如何解决?

编辑:我用过 http://jsonlint.com和几个节点库。

最佳答案

你需要在这里双重逃生。斜杠是 json 中的转义字符,因此您无法转义点(如它所见),而是需要转义该反斜杠,以便您的正则表达式出现 \.就像它应该的一样(json 期望在转义后有一个保留字符,即引号或另一个斜杠或其他东西)。

// passes validation
{
"foo": "bar",
"pattern": "^(/?[-a-zA-Z0-9_.]+)+\\.jpg$"
}

关于使用模式中转义字符的 JSON(模式)验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30739738/

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