有没有比较通用的npm或工具函数替换JSON.parse和JSON.stringify处理对象中带有函数,正则
等
const forms = [ { name: "aa", age: 11, call: function (val) { console.log("val", val); }, }, ];
[{"name":"aa","age":11,"call":"function (val) { console.log(\"val\", val); }"}]
const forms = [ { name: "aa", age: 11, call: function (val) { console.log("val", val); }, }, ];
AI给的答案,对象转字符串stringifyWithFunctionsAndRegex,字符串转对象parseWithFunctionsAndRegex
function customReplacer(key, value) { if (value instanceof RegExp) { return `__REGEXP:${value.toString()}`; } else if (typeof value === 'function') { return `__FUNCTION:${value.toString()}`; } else { return value; }}function stringifyWithFunctionsAndRegex(obj) { return JSON.stringify(obj, customReplacer);}const obj = { name: 'John', age: 30, regExp: /test/, sayHello: function() { console.log('Hello!'); }};const jsonString = stringifyWithFunctionsAndRegex(obj);console.log(jsonString);
function customReviver(key, value) { if (typeof value === 'string' && value.startsWith('__REGEXP:')) { const match = value.match(/__REGEXP:(.+)/); return new RegExp(match[1]); } else if (typeof value === 'string' && value.startsWith('__FUNCTION:')) { const match = value.match(/__FUNCTION:(.+)/); return eval(`(${match[1]})`); } else { return value; }}function parseWithFunctionsAndRegex(jsonString) { return JSON.parse(jsonString, customReviver);}const jsonString = '{"name":"John","age":30,"regExp":"__REGEXP:/test/","sayHello":"__FUNCTION:function () { console.log(\'Hello!\'); }"}';const parsedObject = parseWithFunctionsAndRegex(jsonString);console.log(parsedObject);
没有通用的npm或函数可以完全处理JSON中的函数和正则表达式的序列化和反序列化。
在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,用于存储和交换文本信息。JSON是纯文本,并且完全是语言无关的。
JSON.stringify方法可以将JavaScript对象转换为JSON字符串,但它不能序列化函数和正则表达式。这是因为JSON是一种数据格式,主要用于存储和交换数据,而不是代码。函数和正则表达式是JavaScript代码的一部分,而不是数据。
同样,JSON.parse方法可以将JSON字符串转换为JavaScript对象,但它也不能解析函数和正则表达式。这是因为JSON格式不包含任何表示代码(如函数或正则表达式)的语法。
如果你需要在数据库中存储包含函数或正则表达式的对象,你可能需要将这些函数或正则表达式转换为字符串或其他可以序列化的形式。然而,需要注意的是,将函数或正则表达式转换为字符串并不意味着你可以在另一个JavaScript环境中重新执行它们。你可能需要找到一种方法来在你的应用程序中重新创建这些函数或正则表达式。
对于前端原数据的处理,你可能需要使用一些自定义的序列化和反序列化方法来处理这些函数和正则表达式。具体的实现方式会取决于你的具体需求和你所使用的技术栈。例如,你可能需要使用一些库或工具来帮助你处理这些复杂的序列化和反序列化问题。
正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块来实现正则匹配。 re模块中常用功能函数: 1、compile(): 编译正则表达式模式,返回一个正则对象的模式。(可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率。) 格式:re.compile(pattern[,flags=0]) pattern: 编译时用的表达式字符串。 flags
我希望有一个通用的框架来编写一些正则表达式中的语法验证规则,这样我就可以在前端和后端都使用它们。我使用javascript作为前端,使用java作为后端。我想在前端做一个表单提交,但是在提交表单之前,我需要执行一些语法规则检查。当请求到达后端时,我希望评估相同的规则集。 我想把这些规则放在一个可以加载javascript和java代码的公共位置,这样我只需要更改这个公共位置的规则,它们就会反映到两
本文向大家介绍PHP 正则表达式常用函数,包括了PHP 正则表达式常用函数的使用技巧和注意事项,需要的朋友参考一下 1.preg_match() 函数原型:int preg_match (string $pattern, string $content [, array $matches]) preg_match ()函数在$content字符串中搜索与$pattern给出的正则表达式相匹配的内容
我正在尝试使用python中的正则表达式。我构建了正则表达式,如下所示。我知道用于匹配搜索字符串的开头。我已使用包含多个的匹配模式构建框架,但我不确定将如何尝试匹配搜索字符串中的模式。 我预计会引发错误,关于无效的正则表达式,但它不会引发任何错误,也不会返回任何匹配项。 所以,我的问题是或是有效的正则表达式吗?
问题内容: 是否可以在不先给函数命名的情况下将函数放入数据结构中? lambda函数的主体受到严格限制,因此我不能使用它们。 编辑:作为参考,这更像是我遇到问题的真实代码。 问题答案: 我认为创建匿名函数的困难有点让人头疼。您真正想要做的是将相关代码保持在一起,并使代码整齐。因此,我认为装饰师可能会为您工作。
本文向大家介绍js正则表达式常用函数详解,包括了js正则表达式常用函数详解的使用技巧和注意事项,需要的朋友参考一下 一、js正则表达式之replace函数用法: 函数功能:replace函数返回根据正则表达式进行文字替换后的字符串的复制。 函数格式:stringObj.replace(rgExp, replaceText) 参数:字符串stringObj,rgExp正则表达式,replaceTex