【问题标题】:JavaScript parse text containing name value pairs [closed]JavaScript解析包含名称值对的文本[关闭]
【发布时间】:2021-02-03 04:18:06
【问题描述】:

我有一些类似于 JSON 字符串的文本字符串,但不是一个确切的字符串。如下图

First Name: John
Last name : Doe
Address :London

如果可以从这个字符串中提取一个对象会更好,这样我就可以用 for...in 循环遍历它的属性(名字、地址等)。

知道如何做到这一点吗?提前致谢!

【问题讨论】:

  • 你能改变它的输出方式吗?
  • "文本字符串几乎像 JSON 字符串,但不完全一样" 我想说它几乎与 JSON 没有任何共同之处。它有一个:,这基本上是相似性开始和结束的地方。
  • 显示代码以便帮助您。正如你所问的“文本字符串”名字:约翰姓氏:Doe 地址:伦敦它是如何变化的?
  • 你能分享更多细节吗?如果它们在双冒号之前/之后的任何一个空格,这看起来有点难以解析

标签: javascript json regex parsing


【解决方案1】:

只需使用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%;}

【讨论】:

    猜你喜欢
    • 2021-10-28
    • 2021-04-07
    • 1970-01-01
    • 2018-12-30
    • 2020-04-02
    • 2011-10-07
    • 2011-05-16
    • 2020-01-15
    • 1970-01-01
    相关资源
    最近更新 更多