Если это JSON-esque, вы знаете, что он будет иметь ,
и :
разделительные ключи и значения. Я бы начал с того, что вычистил всех остальных персонажей и разделил их на следующие:
var jsonString = "[{'branch': 'Edmonton', 'quantity': 2}]"
var cleaned = jsonString.replace(/[^a-zA-Z0-9:,]/g,'')
//"branch:Edmonton,quantity:2"
var splitIntoKeyVal = cleaned.split(',').map(function(row){ return row.split(':')})
//[["branch","Edmonton"],["quantity],2]]
var json = {}
splitIntoKeyVal.forEach(function(row){
json[row[0]] = row[1]
})
Если вы думаете, что ваши значения могут содержать :
или ,
, вам, возможно, придется сделать какой-то другой трюк с регулярным выражением.