我继承了一个数据库,该数据库以以下格式存储字符串数组:
{"First","Second","Third","Fourth"}
这在应用程序中作为有序列表输出。我们目前正在替换前端移动应用(离子/角度),并希望对此数组执行ngFor。在第一个迭代中,我们对花括号进行了快速而肮脏的替换,然后将字符串拆分为“,”,但希望使用更好的方法。
将这种类型的字符串视为数组的最佳方法是什么?
答案 0 :(得分:2)
您可以将花括号替换为方括号:
str.replace(/{(.*)}/, '[$1]')
然后可以将此特定字符串解析为数组(通过JSON.parse)。
答案 1 :(得分:0)
如果您想对前端的数组进行解析,这行得通吗?:
const oldStyle = '{"First","Second","Third","Fourth"}'
const parseOldStyleToArray = input => input
.replace(/[\{\}]/g, '')
.split(',')
.map(item => item.replace(/\"/g, ''))
const result = parseOldStyleToArray(oldStyle)
console.dir(result)
答案 2 :(得分:0)
通过key:value
映射进行更广泛替换的另一种方法。
str = '{"First","Second","Third","Fourth"}';
mapping = {
'{': '[',
'}': ']'
}
result = str.replace(/[{}]/g, m => mapping[m]);
console.log(result);