除去括号中的所有内容Regex

时间:2018-11-13 07:04:02

标签: javascript jquery regex

这就是我要删除的字符串:

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

,结果应为:

{"msg":"uc_okok"}

我尝试过使用正则表达式

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

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

6 个答案:

答案 0 :(得分:10)

如何使用以下内容;

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"));

答案 1 :(得分:8)

我假设okok..是一个字符串

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

console.log(d.slice(d.indexOf('{'), d.lastIndexOf('}') + 1))

答案 2 :(得分:4)

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

console.log(s);

答案 3 :(得分:3)

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

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

答案 4 :(得分:3)

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

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

console.log(mylExtractedStr);

答案 5 :(得分:2)

您可以捕获它:

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);
}