一只开发狗001 2022-09-28 16:13 采纳率: 22.2%
浏览 35
已结题

特殊格式字符串转为数组对象


Name                       : 以太网 3
InterfaceDescription       : 
InterfaceIndex             : 11
MacAddress                 : *
MediaType                  : 802.3
PhysicalMediaType          : Unspecified
InterfaceOperationalStatus : NotPresent
AdminStatus                : Down
LinkSpeed(Mbps)            : 0
MediaConnectionState       : Unknown
ConnectorPresent           : False
DriverInformation          : ""

Name                       : 以太网 2
InterfaceDescription       : 
InterfaceIndex             : 8
MacAddress                 : **
MediaType                  : 802.3
PhysicalMediaType          : Unspecified
InterfaceOperationalStatus : Up
AdminStatus                : Up
LinkSpeed(Gbps)            : 1
MediaConnectionState       : Connected
ConnectorPresent           : True
DriverInformation          : ""

js或jquery如何将这样的字符串转为正常的数组对象,求指教!

  • 写回答

3条回答 默认 最新

  • MAXLZ 2022-09-28 17:06
    关注
    function strToArray(str) {
      const res = []
      const groups = str.split(/\n/)
      let obj = {}
      for (const group of groups) {
        const groupWithoutWhite = group.replace(/\s+/g, '')
        if (groupWithoutWhite) {
          const [ key, value ] = groupWithoutWhite.replace(/(""|'')/g, '').split(':')
          obj[key] = value
        } else {
          if (Object.keys(obj).length) {
            res.push(obj)
          }
          obj = {}
        }
      }
      if (Object.keys(obj).length) {
        res.push(obj)
      }
      return res
    }
    
    const str = `
    Name                       : 以太网 3
    InterfaceDescription       :
    InterfaceIndex             : 11
    MacAddress                 : *
    MediaType                  : 802.3
    PhysicalMediaType          : Unspecified
    InterfaceOperationalStatus : NotPresent
    AdminStatus                : Down
    LinkSpeed(Mbps)            : 0
    MediaConnectionState       : Unknown
    ConnectorPresent           : False
    DriverInformation          : ""
    
    Name                       : 以太网 2
    InterfaceDescription       :
    InterfaceIndex             : 8
    MacAddress                 : **
    MediaType                  : 802.3
    PhysicalMediaType          : Unspecified
    InterfaceOperationalStatus : Up
    AdminStatus                : Up
    LinkSpeed(Gbps)            : 1
    MediaConnectionState       : Connected
    ConnectorPresent           : True
    DriverInformation          : ""`
    
    
    console.log(strToArray(str))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月29日
  • 已采纳回答 9月29日
  • 创建了问题 9月28日

悬赏问题

  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂