0

我将如何从下面的代码中删除 listInfo 原型和 logInfo 对象。

我的问题是 listInfo 原型,我似乎无法找到删除右括号的方法。其他一切都很容易找到和删除。

var ePlug = (function (undefined) {
    var logInfo, logErrors, logWarnings, hasError, version;

    function ePlug(options) {
        this.version = "0.1 Alpha";
        this.logInfo = [];
        this.logErrors = [];
        this.logWarnings = [];

        this.logInfo.push('Setting options start.');
        options = options || {};

        this.validate(options.one, 'string', 'one provided is not valid.');
        this.validate(options.two, 'boolean', 'two provided is not valid.');

        if(this.hasError !== true) {
            options.one = typeof options.one === 'string' ? options.one : 'string';
            options.two = typeof options.two === 'boolean' ? options.two : true;

            this.logInfo.push('Setting options end.');
            this.options = options;
        }
        else {
            this.logErrors.push('Setting options error.');
        }
    }

    ePlug.prototype.listInfo = function () {
        return this.logg(this.logInfo);
    };

    ePlug.prototype.listErrors = function () {
        return this.logg(this.logErrors);
    };

    ePlug.prototype.listWarnings = function () {
        return this.logg(this.logWarnings);
    };

    ePlug.prototype.logg = function (what) {
        if(typeof window.console === 'undefined') {
           alert(what);
        }
        else {
           console.log(what);
        }
    };

    ePlug.prototype.init = function () {
        if(this.hasError !== true) {
            // start here
        }
    };

    return ePlug;
})();

var eOpt = (function () {
    function options() { return {}; }
    return options;
})();

eOpt.one = 'test';
eOpt.two = false;
var ePlug = new ePlug(eOpt);
ePlug.init();

我希望能够删除下面的代码

ePlug.prototype.listInfo = function () {
    return this.logg(this.logInfo);
};

到目前为止,我只能删除前两行。

我不知道如何删除最后一行};

4

1 回答 1

2

GNU 的代码:

sed '/ePlug.prototype.listInfo = function () {/, /};/d' file

$猫文件
var ePlug = (函数 (未定义) {
    var logInfo、logErrors、logWarnings、hasError、版本;

    功能 ePlug(选项){
        this.version = "0.1 Alpha";
        this.logInfo = [];
        this.logErrors = [];
        this.logWarnings = [];

        this.logInfo.push('设置选项开始。');
        选项 = 选项 || {};

        this.validate(options.one, 'string', '提供的一个无效。');
        this.validate(options.two, 'boolean', '提供的两个无效。');

        如果(this.hasError !== true){
            options.one = typeof options.one === 'string' ? options.one : '字符串';
            options.two = typeof options.two === 'boolean' ? options.two :真;

            this.logInfo.push('设置选项结束。');
            this.options = 选项;
        }
        别的 {
            this.logErrors.push('设置选项错误。');
        }
    }

    ePlug.prototype.listInfo = function () {
        返回 this.logg(this.logInfo);
    };

    ePlug.prototype.listErrors = function () {
        返回 this.logg(this.logErrors);
    };

    ePlug.prototype.listWarnings = function () {
        返回 this.logg(this.logWarnings);
    };

    ePlug.prototype.logg = 功能(什么){
        if(typeof window.console === '未定义') {
           警报(什么);
        }
        别的 {
           控制台日志(什么);
        }
    };

    ePlug.prototype.init = function () {
        如果(this.hasError !== true){
            // 从这里开始
        }
    };

    返回电子插头;
})();

var eOpt = (函数 () {
    函数选项(){返回{};}
    退货选项;
})();

eOpt.one = '测试';
eOpt.two = 假;
var ePlug = 新 ePlug(eOpt);
ePlug.init();

$sed '/ePlug.prototype.listInfo = function () {/, /};/d' 文件
var ePlug = (函数 (未定义) {
    var logInfo、logErrors、logWarnings、hasError、版本;

    功能 ePlug(选项){
        this.version = "0.1 Alpha";
        this.logInfo = [];
        this.logErrors = [];
        this.logWarnings = [];

        this.logInfo.push('设置选项开始。');
        选项 = 选项 || {};

        this.validate(options.one, 'string', '提供的一个无效。');
        this.validate(options.two, 'boolean', '提供的两个无效。');

        如果(this.hasError !== true){
            options.one = typeof options.one === 'string' ? options.one : '字符串';
            options.two = typeof options.two === 'boolean' ? options.two :真;

            this.logInfo.push('设置选项结束。');
            this.options = 选项;
        }
        别的 {
            this.logErrors.push('设置选项错误。');
        }
    }


    ePlug.prototype.listErrors = function () {
        返回 this.logg(this.logErrors);
    };

    ePlug.prototype.listWarnings = function () {
        返回 this.logg(this.logWarnings);
    };

    ePlug.prototype.logg = 功能(什么){
        if(typeof window.console === '未定义') {
           警报(什么);
        }
        别的 {
           控制台日志(什么);
        }
    };

    ePlug.prototype.init = function () {
        如果(this.hasError !== true){
            // 从这里开始
        }
    };

    返回电子插头;
})();

var eOpt = (函数 () {
    函数选项(){返回{};}
    退货选项;
})();

eOpt.one = '测试';
eOpt.two = 假;
var ePlug = 新 ePlug(eOpt);
ePlug.init();

花括号{}不是 BRE 中的特殊字符。

于 2013-07-03T12:34:02.397 回答