2015-12-15 83 views
-4

我需要删除双引号特定键值报价:JavaScript对象删除特定键值

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') 
    } 
+0

假设你正在使用JavaScript,可能重复:http://stackoverflow.com/questions/19156148/i-want-to-remove-double-quotes-from-a -串。 –

+0

@SeanPerkins那不是我所期望的 – AndreFontaine

+0

如果我正确理解你的问题,你想为'resolve'的当前值运行'eval'的结果赋予'resolve'吗? – ndn

回答

3

当你说去除双引号和唯一的双quoes在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);