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

时间:2014-02-07 09:41:26

标签: javascript regex

我正在使用REST 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。

基本思想是采用如下字符串:

{@someAttribute Attribute1}

或:

{@isTrue false}

并摆脱像{}和@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.

我知道,Javascript中有replace()方法,但我的知识在正则表达式中非常有限。有什么帮助吗?

3 个答案:

答案 0 :(得分:3)

如果{ and }达到平衡,那么这应该有效:

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

输出

  

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。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

试试这段代码:

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