使用正则表达式将字符串转换为javascript数组
如果以前有人问过这个问题,我会回答(这是我的第一个问题)。 我的字符串如下所示(删除空格后:使用正则表达式将字符串转换为javascript数组,javascript,regex,json,Javascript,Regex,Json,如果以前有人问过这个问题,我会回答(这是我的第一个问题)。 我的字符串如下所示(删除空格后: "#home #blog description of page here ##article1 ##article2 #contact" 解析后将返回json对象: { home: {}, blog: { description: "description of page here", pages: { article1: {
"#home #blog description of page here ##article1 ##article2 #contact"
解析后将返回json对象:
{
home: {},
blog: {
description: "description of page here",
pages: {
article1: {},
article2: {}
}
},
contact: {}
}
我想写一个函数,将字符串作为参数并返回一个json对象。有什么想法吗
感谢您的建议。由于我不确定这项工作是否显而易见,这里有一个建议:
var str = "#home #blog description of page here ##article1 ##article2 #contact";
var m, r = /(#+)([^# ]+)/g, o = {}, s = [o];
while (m = r.exec(str)) {
var i = m[1].length - 1;
s[i+1] = s[i][m[2]] = {};
}
所需对象是o
请注意,它并不能完成所有工作,因为这是一个通用解析解决方案的尝试,而您提供的输入字符串并不能提供所有内容(说明键和页面键在哪里?)。请将其视为第一步,并鼓励您定义更严格的通用格式。这不仅仅是一个正则表达式。不,我猜它必须是一个更新正则表达式或其他东西的递归Javascript函数。您有义务努力解决问题,当您出现问题时,您可以尝试提供代码ng使用。你尝试过什么?pages和description属性键应该从哪里来?@dystroy你的答案看起来不错,为什么要删除它?哈哈,好了^ ^ OP扩展此解决方案以获得所需的输出应该没有问题。再次感谢。非常有用:)我喜欢你处理数组构造的方式。我以前从未见过这样做。我花了半个小时试着破解它哈哈@特里斯坦·马提亚现在一切都清楚了吗?