代码之家  ›  专栏  ›  技术社区  ›  Sattyaki

JavaScript解析包含名称-值对的文本

  •  0
  • Sattyaki  · 技术社区  · 5 年前

    我有一些类似于JSON字符串的文本字符串,但不是一个精确的字符串。就像下面一样

    First Name: John
    Last name : Doe
    Address :London
    

    如果能从这个字符串中提取一个对象会更好,这样我就可以用for。。。循环中。

    你知道怎么做吗?提前谢谢!

    0 回复  |  直到 5 年前
        1
  •  2
  •   Yevhen Horbunkov    5 年前

    简单地利用 String.prototype.split() (一次,将每一行提取到单独的项中,然后再次将属性名称与值分离):

    const str = `First Name: John
    Last name : Doe
    Address :London`,
    
          result = str
            .split("\n")
            .reduce((acc, substr) => {
              const [prop, value] = substr.split(/\s*:\s*/)
              acc[prop] = value
              return acc
            }, {})
            
    console.log(result)
    .as-console-wrapper{min-height:100%;}