JavaScript 封装函数拆分字符串

方文锋  2020-05-08 09:41:56  1350  首页学习JavaScript


function search_keyword(config) {
    if (Object.prototype.toString.call(config) === "[object Object]") {
        for (var attr in config) {
            this[attr] = config[attr];
        }
    }
}
search_keyword.prototype = {
    /**
     * 数组截取
     * @param  array array  [description]
     * @param  number start  [description]
     * @param  number length [description]
     * @return array        [description]
     */
    array_slice: function(array, start, length) {
        var arr = [];
        length = length < 0 ? 0 : length;
        for (var i = 0, j = 0, len = array.length; i < len; i++) {
            if (i >= start && i < length + start) {
                arr[j] = array[i];
                j++;
            }
        }
        return arr;
    },
    /**
     * 搜索词分割,左->右,字数由多到少
     * @param  {[type]} length   [description]
     * @param  {[type]} array    [description]
     * @param  {[type]} save_arr [description]
     * @return {[type]}          [description]
     */
    search1: function(length, array, save_arr) {
        for (var i = 0, len = array.length; i < len; i++) {
            (i + length <= len) && (save_arr[save_arr.length] = this.array_slice(array, i, length));
            //(i + length <= len) && (save_arr[save_arr.length] = array.slice(i, length));
        }
    },
    /**
     * 搜索词分割
     * @param  string keyword  [搜索词]
     * @param  boole|number toString [布尔值或者 0,1]
     * @return array          [返回数组]
     */
    keyword: function(keyword, toString) {
        var array = keyword.split('');
        var save_arr = [];
        var l, len;
        len = array.length;
        for (var i = len; i > 0; i--) {
            this.search1(i, array, save_arr);
        }
        if (toString) {
            for (var i = 0, len = save_arr.length; i < len; i++) {
                save_arr[i] = save_arr[i].join("");
            }
        }
        return save_arr;
    },

    set_url_data: function(obj, lv1, lv2) {
        (lv1) || (lv1 = "&");
        (lv2) || (lv2 = "=");
        var get_str = "";
        if (obj) {
            for (var attr in obj) {
                get_str += attr + lv2 + obj[attr] + lv1;
            }
        }
        return get_str;
    },
    /**
     * 删除左右两端的空格
     * @param  {[type]} str  [description]
     * @param  {[type]} preg [description]
     * @return {[type]}      [description]
     */
    trim: function(str, preg) {
        if (preg) {
            preg = new RegExp("(^" + preg + "*|" + preg + "*$)", "ig");
        }
        (preg) || (preg = /(^[\s\t\r\n]*|[\s\t\r\n]*$)/ig);
        return str.replace(preg, "");
    }
};