【问题标题】:Transferring Regex Validation Pattern Via JSON Rest Service通过 JSON Rest 服务传输正则表达式验证模式
【发布时间】:2019-12-10 10:56:41
【问题描述】:

我正在使用他们的电子签名 API 与 DocuSign 构建一个非常庞大和复杂的集成。作为其中的一部分,我们在 DocuSign 表单上提供了许多可填写的字段。我可以将验证模式(正则表达式)传递给 DocuSign API 的字段,它将根据该模式进行验证。 我遇到的问题是任何时候我都需要在我的正则表达式中使用“\”。从表面上看,要生成有效的 JSON,必须有偶数个 \,例如 '\\d' - 但这并不构成有效的正则表达式,因此,没有什么能满足它。

如何构建需要在其中包含 \ 的正则表达式并通过 JSON 发送它们。我绝对需要的字符是句点和破折号,我不知道如何在没有 \ 分隔符的正则表达式中显示它们。

在发现我的代码存在这些错误的问题后,我开始在 post man 实验中玩耍。我在网上搜索过,但我搜索的大多数地方都说正则表达式是代码,不应该发送。当然,如果我对双方都有权力,我可以删除 DocuSign 一方的额外分隔符,但因为我没有这种权力来操纵接收方的有效载荷,所以我被卡住了。

//Here is an example of something that I would LIKE to sent via JSON, but my single '\-' on the validation pattern are making it not valid JSON and returning an error. 

{
                "xPosition": "41",
                "recipientId": "1",
                "validationPattern": "^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$",
                "validationMessage": "Please enter a 10-digit telephone number. (###-###-####)",
                "documentId": "19305",
                "fontColor": "Black",
                "tabLabel": "partPhone",
                "shared": "false",
                "font": "ArialNarrow",
                "name": "Telephone Number",
                "locked": "false",
                "required": "true",
                "pageNumber": "1",
                "yPosition": "329",
                "fontSize": "Size10",
                "disableAutoSize": "false",
                "width": "161"
            }

我希望能够将示例 sn-p 发送到 DocuSign 并且没有错误,此外,我希望在包含 \ 时传递给它的 Regex 能够正常工作。

【问题讨论】:

  • 你在手写 JSON 吗?如果您使用标准库对 JSON 进行编码,那么接收端应该能够毫无问题地对其进行解码...
  • 你可以对它们进行十六进制编码,或者你可以像 \- 一样对它们进行转义,然后你可以在你想使用它们时对它们进行解码 (stackoverflow.com/a/17597400/2226328)

标签: json regex docusignapi


【解决方案1】:

我同意@MonkeyZeus——通过 JSON 发送反斜杠没有问题。要发送反斜杠,请使用反斜杠对其进行转义。看到这个source.

So, to use the regex 

^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$

Send the JSON equivalent string in your API request:

"^[0-9]{3}\\-[0-9]{3}\\-[0-9]{4}$"

请使用发送到 DocuSign 的 JSON 示例和 API 响应来更新您的问题。使用logger 获取跟踪信息。

同时:

  • DocuSign 正则表达式使用 .NET 实现。 Docs。我不认为我们支持替换,匹配或不匹配。
  • online .Net regex 测试员

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2015-04-20
    • 2017-03-03
    • 2019-07-23
    相关资源
    最近更新 更多