【问题标题】:Need a regex to remove outer function需要一个正则表达式来删除外部函数
【发布时间】:2014-09-03 17:15:55
【问题描述】:

我需要从一堆文件中删除 require.js。其余的代码需要保留,还有大量的嵌套函数等,这使事情变得复杂。我在下面粘贴了一个示例,基本上我需要'use strict'作为第一行代码,并且还要去掉最后的});从代码。使用 sublime text 2. 任何正则表达式或其他想法如何做到这一点?

编辑:需要在下面示例中的“使用严格”之前删除所有内容,以及关闭 });中间的代码,“使用严格”下面的所有内容,除了最后的关闭 });需要保持机智。该代码确实包含使事情复杂化的函数和对象。代码示例:

define([
    'backbone',
    'common',
    'marionette',
    'bootstrap'
],
function (Backbone, Common) {

    'use strict';

    var foo = 'stuff';

    foo = Backbone.Marionette.ItemView.extend({

        template: 'stuff',

        className: 'more stuff',

        events: {
            "click #a": "s"
        },

        s: function () {

            //
            // On click of a button, hide the modal
            //

            this.$el.modal('hide');
        }

    });

});

【问题讨论】:

    标签: regex requirejs sublimetext2


    【解决方案1】:

    你可以使用这个正则表达式:

    .*(?='use strict')|}\);$
    

    Working demo

    【讨论】:

    • 给我一个错误,说'找到一个关闭重复运算符 } 没有对应的 {
    • @user2934565 尝试转义花括号,使用:.*(?='use strict')|\}\);$
    • 消除错误,但如果我有任何其他 });在代码中(我这样做),它识别出它看到的第一个并从那里遍历匹配项。有没有办法专门匹配文档中的最后一个?
    • @user2934565 那是因为你没有使用我在正则表达式中指定的标志。请注意,在我的屏幕截图(以及链接)中,我使用了标志 g global 和 s singleline。如果您不同时使用它们,则正则表达式将不起作用。
    猜你喜欢
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多