首页 文章

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

提问于
浏览
1

我正在使用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 回答

  • 1

    如果 { and } 是 balancer 的,那么这应该工作:

    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 .

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

    试试这段代码:

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

相关问题