【问题标题】:Remove everything outside of the brackets Regex删除括号正则表达式之外的所有内容
【发布时间】:2019-04-15 23:08:23
【问题描述】:

这就是我要从中删除字符串的内容:

var myl = 'okok{"msg":"uc_okok"}'

结果应该是:

{"msg":"uc_okok"}

我尝试过使用正则表达式

var news = myl.toString().replace(/ \{(.*""?)\}/g);

但它不起作用?有什么想法吗?

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:

    如何使用以下内容;

    myl.toString().replace(/.*?({.*}).*/, "$1")
    

    它也应该与多层括号一起使用;

    str = 'okok{"msg":"uc_okok"}';
    console.log(str.replace(/.*?({.*}).*/, "$1"));
    
    str = 'adgadga{"okok":{"msg":"uc_okok"}}adfagad';
    console.log(str.replace(/.*?({.*}).*/, "$1"));

    【讨论】:

      【解决方案2】:

      我认为okok.. 是一个字符串

      var d = 'okok{"msg":"uc_okok"}'
      
      console.log(d.slice(d.indexOf('{'), d.lastIndexOf('}') + 1))

      【讨论】:

      • 它应该是 d.lastIndexOf('}') 否则失败 adgadga{"okok":{"msg":"uc_okok"}}adfagad
      • 鉴于只有字符串的输入,我只做了“indexOf”,但为了迎合对象,你是对的。完成编辑!
      【解决方案3】:

      s = 'okok{"msg":"uc_okok"}';
      s = '{' + s.split('{')[1].split('}')[0] + '}';
      
      console.log(s);

      【讨论】:

        【解决方案4】:

        您也可以简单地提取括号之间的字符串,如下所示;

        var myl = "okok{\"msg\":\"uc_okok\"}okok";
        var mylExtractedStr = myl.match('\{.*\}')[0];
        
        console.log(mylExtractedStr);
        

        【讨论】:

          【解决方案5】:

          只需使用此代码 - 它将项目拆分为一个数组,并删除第一个元素:

          var news = myl.toString().split("{").shift().unshift("{").join("");
          

          【讨论】:

            【解决方案6】:

            您可以改为捕获它:

            var myString = 'okok {"msg":"uc_okok"} bla bla bla';
            var myRegexp = /({[^{}]*})/g;
            var match = myRegexp.exec(myString);
            console.log(match[1]);

            这可以放在循环中 (while...) 但不适用于嵌套括号:

            var myString = 'okok {"msg":"uc_okok"} bla bla bla {"msg":"uc_okok212121"} lorem ipsum';
            var myRegexp = /({[^{}]*})/g;
            var match = myRegexp.exec(myString);
            
            while(match !== null) {
                console.log(match[1]);
                match = myRegexp.exec(myString);
            }

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-08-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-06-20
              • 1970-01-01
              相关资源
              最近更新 更多