【问题标题】:JavaScript Object remove quotes in specific key valueJavaScript 对象删除特定键值中的引号
【发布时间】:2016-03-21 20:21:35
【问题描述】:

我需要删除特定键值的双引号:

upload: {
    name: "upload",
    url: "/upload",
    controller: "invoicesCtrl",
    templateUrl: "./views/invoices.html",
    resolve: "resolveUrl('./compiled/invoices_app.js')"
  },
  invoices: {
    name: "invoices",
    url: "/invoices",
    controller: "invoicesCtrl",
    templateUrl: "/invoices/views/invoices.html",
    resolve: "resolveUrl('/invoices/app/js/compiled/invoices_app.js')"
  }

仅用于解析键值,其他必须是字符串。 replace 函数是否有任何正则表达式?预期结果:

upload: {
    name: "upload",
    url: "/upload",
    controller: "invoicesCtrl",
    templateUrl: "./views/invoices.html",
    resolve: resolveUrl('./compiled/invoices_app.js')
  },
  invoices: {
    name: "invoices",
    url: "/invoices",
    controller: "invoicesCtrl",
    templateUrl: "/invoices/views/invoices.html",
    resolve: resolveUrl('/invoices/app/js/compiled/invoices_app.js')
  }

【问题讨论】:

  • 假设您使用的是 JavaScript,可能重复:stackoverflow.com/questions/19156148/….
  • @SeanPerkins 这不是我所期望的
  • 如果我正确理解您的问题,您想将eval 的当前值resolve 运行的结果分配给resolve
  • 旁注,这只是一个 JavaScript 对象,而不是 JSON。我已编辑您的标题以反映这一点并删除了json 标签...

标签: javascript regex


【解决方案1】:

当您说 删除双引号 并且 resolve 中唯一的双引号是字符串文字终止符时,您是说您希望在某些时候调用一个名为 resolveUrl 的 JavaScript 函数点,resolve 应该是那个调用的结果?

在这种情况下,您可以执行以下操作:

// iterate through all properties of myObject, assuming it is a flat
// object containing upload and invoices from your code
Object.keys(myObject).forEach(function(key) {

   if(myObject[key].hasOwnProperty('resolve'))
      myObject[key].resolve = eval(myObject[key].resolve);

});

如果您知道它始终是 resolveUrl 调用,那么让原始属性包含字符串值会更安全 - 例如。 resolve: '/invoices/app/js/compiled/invoices_app.js' - 然后手动调用resolveUrl

if(myObject[key].hasOwnProperty('resolve'))
   myObject[key].resolve = resolveUrl(myObject[key].resolve);

【讨论】:

    猜你喜欢
    • 2016-08-05
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    相关资源
    最近更新 更多