在javascript中,无法将字符串转换为变量

在javascript中,无法将字符串转换为变量,javascript,tabulator,Javascript,Tabulator,我在javascript中的一个需求是,我试图将从数据库传递的字符串转换为javascript对象 步骤1: 从数据库传递的字符串: "validator":["required","numeric","maxLength:14","{type: amountValidate}"] 步骤2:使用JSON.Parse()方法转换为javascript对象,输出如下: validator: Array(4) 0: "required" 1: "numeric" 2: "maxLength:14"

我在javascript中的一个需求是,我试图将从数据库传递的字符串转换为javascript对象

步骤1: 从数据库传递的字符串:

"validator":["required","numeric","maxLength:14","{type: amountValidate}"]
步骤2:使用JSON.Parse()方法转换为javascript对象,输出如下:

validator: Array(4)
0: "required"
1: "numeric"
2: "maxLength:14"
3: "{type: amountValidate}"
length: 4
预期输出为: 在下面的代码中,amountValidate正在通过制表器js api转换为函数

validator:["required","numeric","maxLength:14",{
                                    type:amountValidate,                                       
                                }]
由于我将下面的函数应用于类型:amountValidate,因此它应该作为一个变量,而不应该出现在双引号中

 var amountValidate = function(cell, value, parameters){  
                                    var regex = /^\s*-?(\d+(\.\d{1,2})?|\.\d{1,2})\s*$/ 
                                    var n = value.match(regex);                        
                                    if(n !== null){
                                        return true;
                                    }else{
                                        return false;
                                    }
                                }

提前感谢。

这里的主要问题是您的字符串不是有效的JSON。应该是这样的:

'{"validator": ["required","numeric","maxLength:14", {"type": "amountValidate"}]}'

在线有多个json格式化程序/验证程序,例如,您可以使用它们来检查它。

不确定您在问什么。如果打开控制台并键入
console.log({key:“value”})
,您将看到它的log value被引号括起来。这些引号不是字符串中的文字。它们是浏览器,向您显示它是一个字符串。与
console.log({key:“\”value\”})相比,console.log确实有文字引号作为字符串值的一部分。很抱歉,我已经编辑了查询。这应该在注释中,而不是在答案中。@fructeddeveloper为什么?这回答了这个问题,所以这是一个答案。