为了账号安全,请及时绑定邮箱和手机立即绑定

为javascript添加/删除文本多行

为javascript添加/删除文本多行

桃花长相依 2021-11-04 17:43:55
我有需要删除/添加的多行字符串,这里是我想编辑的数据  data{      id      date      ***progress{        update        progressStatus      }***      events {        id        time      }    }我的观点是如何删除progress{            update            progressStatus          }我试过“替换”,“分配”将其删除,如下所示,但不起作用  const test = data.replace(progress, '');谢谢你。
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

这是逻辑,我正在考虑您要删除具有开放大括号('{')和结束大括号('}')的“进度”:


var data = `data{

      id

      date

      ***progress{

        update

        progressStatus

      }***

      events {

        id

        time

      }

    }`;

function _remove(data, key) {

  var s = data.indexOf(key);

  var e = ((s) => {

    for(var i=s; i<data.length; i++){

      if(data[i] == "}")

        return i;

    }

  })(s + key.length);

  console.log(data.replace(data.substr(s, e-s+1), ""));

}

_remove(data, 'progress');

也可以用正则表达式来完成!


查看完整回答
反对 回复 2021-11-04
?
慕容708150

TA贡献1831条经验 获得超4个赞

您可以尝试使用正则表达式


//img1.sycdn.imooc.com//6183ab7f000160ab03910081.jpg

const regex = /progress{[^}]+}\s+/gm;

const str = `data{

      id

      date

      progress{

        update

        progressStatus

      }

      events {

        id

        time

      }

    }`;

const subst = ``;


// The substituted value will be contained in the result variable

const result = str.replace(regex, subst);


console.log('Substitution result: ', result);


查看完整回答
反对 回复 2021-11-04
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

什么是我有多条线?grapqh 的查询会返回一个对象,为什么还是一个多字符串?


在您的情况下(查询数据是字符串),请尝试:


const data = ` data{

      id

      date

      progress{

        update

        progressStatus

      }

      events {

        id

        time

      }

    }`

const newData = data.replace(`progress{

        update

        progressStatus

      }`, '')

console.log(newData)


如果你想删除对象中的一个键,试试这个:


delete data.progress;


// or,

delete data['progress'];


// or,

const prop = "progress";

delete data[prop];

演示:


const data = {

       progress: {

          x: "x"

       },

       events: {

          id: 1

       }

    }


delete data.progress

console.log(data)


查看完整回答
反对 回复 2021-11-04
  • 3 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信