Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式将字符串转换为javascript数组_Javascript_Regex_Json - Fatal编程技术网

使用正则表达式将字符串转换为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扩展此解决方案以获得所需的输出应该没有问题。再次感谢。非常有用:)我喜欢你处理数组构造的方式。我以前从未见过这样做。我花了半个小时试着破解它哈哈@特里斯坦·马提亚现在一切都清楚了吗?