简体   繁体   English

使用正则表达式转换javascript中的字符串

[英]Convert string in javascript with regular expression

I am working with REST API that returns the following string: 我正在使用REST API,该API返回以下字符串:

Lorem ipsum {@someAttribute Attribute1} ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod {@isTrue false} Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum {@someAttribute Attribute1} ipsum dolor坐着,安全地服从了,sed do eiusmod {@isTrue否}意外的圣人被迫在法庭上当然地犯了罪。

The basic idea is to take strings like: 基本思想是采用如下字符串:

{@someAttribute Attribute1}

or: 要么:

{@isTrue false}

and get rid of the thinks like {} and @someAttribute, @isTrue so that the finall string would look like this: 并摆脱{}和@someAttribute,@isTrue之类的想法,使finall字符串如下所示:

Lorem ipsum Attribute1 ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod false Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

I know, that there is replace() method in Javascript, but my knowledge is very limited in regular expressions. 我知道Javascript中有replace()方法,但是我对正则表达式的了解非常有限。 Any help ? 有什么帮助吗?

If { and } are balanced then this should work: 如果{ and }是平衡的,那么这应该起作用:

var repl = s.replace(/\{@\S+\s+([^}]+)\}/g, '$1');

OUTPUT 输出值

Lorem ipsum Attribute1 ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod false Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum Attribute1 ipsum dolor set amet,安全地服从上等的,sed do eiusmod false接受者sint occaecat cupidatat是非偶然的,在culfi quificia deserunt mollit an an est estumum中被淘汰。

txt.replace( /\{\@\w+ (.*?)\}/gi, '$1' );

Try this code: 试试这个代码:

var str = 'Lorem ipsum {@someAttribute Attribute1} ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod {@isTrue false} Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
var output = str.replace(/\{[^}]*\}/g, function (m) {
    return m.slice(0, -1).replace(/^\{@\w*\s/g, '');
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM