gpt4 book ai didi

javascript - 如何使用 Json 解析正则表达式文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:46 32 4
gpt4 key购买 nike

我有这个字符串,我想将其转换为 JSON 对象,问题是该对象的字段之一是正则表达式:

"{
\"regex\": /^([a-zA-Z0-9_\\.\\-\\+%])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$/,
\"alertText\": \"test\"
}"

有没有办法在不进行数百次替换的情况下获取 JavaScript 对象?

编辑:我使用以下代码存储来自 Stringifying a regular expression? 的原始对象的正确序列化版本:

RegExp.prototype.toJSON = function() { return this.source; };

然后我可以修改字符串的内容:

{"regex":"^([a-zA-Z0-9_\\.\\-\\+%])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$","alertText":"* {{alertText}}"}

所以我可以将它用作模板,然后在需要时对字符串进行 JSON.parse 以获取新对象。

最佳答案

只需确保您的正则表达式值用引号引起来以强制它成为字符串值:

"{
\"regex\": \"/^([a-zA-Z0-9_\\.\\-\\+%])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$/\",
\"alertText\": \"test\"
}"

然后,这将被正确解析为 JSON 对象,您稍后可以获取正则表达式以从中创建您的正则表达式。

如果您出于正则表达式的目的需要对斜杠进行双重转义,那么...

 "{
\"regex\": \"/^([a-zA-Z0-9_\\\\.\\\\-\\\\+%])+\\\\@(([a-zA-Z0-9\\\\-])+\\\\.)+([a-zA-Z0-9]{2,4})+$/\",
\"alertText\": \"test\"
}"

关于javascript - 如何使用 Json 解析正则表达式文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845081/

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