一只开发狗001 2022-09-28 16:13 采纳率: 25%
浏览 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数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误