【问题标题】:Convert string to javascript array with regex [closed]使用正则表达式将字符串转换为 javascript 数组 [关闭]
【发布时间】:2013-12-09 13:41:13
【问题描述】:

如果以前有人问过这个问题,我很抱歉(这是我的第一个问题)。 我的字符串看起来像这样(删除空格后:

"#home #blog description of page here ##article1 ##article2 #contact"

解析时会返回json对象:

{
    home: {},
    blog: {
        description: "description of page here",
        pages: { 
            article1: {},
            article2: {}
        }
    },
    contact: {}
}

我想写一个函数,它接受一个字符串作为参数并返回一个 json 对象。有什么想法吗?

提前感谢。

【问题讨论】:

  • 这不仅仅是一个正则表达式。
  • 不,我猜它必须是一个更新正则表达式或其他东西的递归 Javascript 函数。
  • 您有责任努力尝试解决问题,当您遇到问题时提供您尝试使用的代码。你试过什么?
  • “pages”和“description”属性键应该从哪里来?
  • @dystroy 你的答案看起来不错,为什么要删除它?

标签: javascript regex json


【解决方案1】:

由于我不确定这项工作是否如此明显,这里有一个建议:

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

Demonstration

请注意,它并不能完全解决问题,因为它是对通用解析解决方案的尝试,而您提供的输入字符串并不能提供所有内容(“描述”和“页面”键在哪里?)。请将其视为第一步,并鼓励您定义更严格的通用格式。

【讨论】:

  • 哈哈,你去吧^_^ OP扩展这个解决方案以获得所需的输出应该没问题。
  • 再次感谢。超级有用:)
  • 我喜欢您处理数组构造的方式。以前从未见过它这样做。花了我半个小时来尝试解码哈哈!
  • @TristanMatthias 现在一切都清楚了吗?
猜你喜欢
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多