【问题标题】:In the javascript unable to convert string to variable在javascript中无法将字符串转换为变量
【发布时间】:2020-02-13 15:55:30
【问题描述】:

我对 javascript 的要求之一,我正在尝试将从数据库传递的字符串转换为 javascript 对象。

第一步: 从数据库传递的字符串:

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

Step2:使用JSON.Parse()方法转换成javascript对象,输出如下:

validator: Array(4)
0: "required"
1: "numeric"
2: "maxLength:14"
3: "{type: amountValidate}"
length: 4

预期输出为: 在下面的代码中,amountValidate 是通过 tabulator js api 转换成函数的。

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

由于我将以下函数应用于 type: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;
                                    }
                                }

提前致谢。

【问题讨论】:

  • 不确定你在问什么。如果您打开控制台并输入console.log({ key: "value" }),您将看到它的日志值被引号括起来。这些引号不是字符串中的文字。它们是向您显示它是字符串的浏览器。与 console.log({ key: "\"value\"" }) 相比,它确实将文字引号作为字符串值的一部分。
  • 对不起,我已经编辑了查询。

标签: javascript tabulator


【解决方案1】:

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

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

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

【讨论】:

  • 这应该在评论中而不是在回答中。
  • @FrustratedDeveloper 为什么?这回答了问题,所以这是一个答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 2019-03-19
相关资源
最近更新 更多