模仿apache commons StringUtils封装的Javascript js的StringUtils工具类

var StringUtils = function () {
 
    var makeString = function(object) {
        if (object == null) return '';
        return '' + object;
    }
    
    var escapeRegExp = function(str) {
          return makeString(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
    }
    
    var defaultToWhiteSpace = function(characters) {
      if (characters == null)
        return '\\s';
      else if (characters.source)
        return characters.source;
      else
        return '[' + escapeRegExp(characters) + ']';
    }
 
    return {
        trim: function(str, characters) {
            var nativeTrim = String.prototype.trim;
            str = makeString(str);
            if (!characters && nativeTrim) return nativeTrim.call(str);
            characters = defaultToWhiteSpace(characters);
            return str.replace(new RegExp('^' + characters + '+|' + characters + '+$', 'g'), '');
        },
        contains: function(str, searchStr) {
            if (str == null || searchStr == null) {
                return false;
            }
            return str.indexOf(searchStr) >= 0;
        },
        containsIgnoreCase: function(str, searchStr) {
            if (str == null || searchStr == null) {
                return false;
            }
            return StringUtils.contains(str.toUpperCase(), searchStr.toUpperCase());
        },
        startsWith: function(str, starts) {
            str = makeString(str);
            starts = makeString(starts);
            return str.lastIndexOf(starts) == 0;
        },
        startsWithIgnoreCase: function(str, starts) {
            return StringUtils.startsWith(str.toUpperCase(), starts.toUpperCase());
        },
        endsWith: function(str, ends) {
            str = makeString(str);
            ends = makeString(ends);
            if (typeof position == 'undefined') {
                position = str.length - ends.length;
            } else {
                position = Math.min(toPositive(position), str.length) - ends.length;
            }
            return position >= 0 && str.indexOf(ends, position) === position;
        },
        endsWithIgnoreCase: function(str, ends) {
            return StringUtils.endsWith(str.toUpperCase(), ends.toUpperCase());
        },
        isEmpty: function(str) {  
            return str == null || str.length == 0;  
        },  
        isNotEmpty: function(str) {
            return !StringUtils.isEmpty(str);
        },  
        isBlank: function(str) {
            return (/^\s*$/).test(makeString(str));
        },  
        isNotBlank: function(str) {
            return !StringUtils.isBlank(str);
        },
        substringBetween: function(str, open, close) {
            if (str == null || open == null || close == null) {
                return null;
            }
            var start = str.indexOf(open);
            if (start != -1) {
                var end = str.indexOf(close, start + open.length);
                if (end != -1) {
                    return str.substring(start + open.length, end);
                }
            }
            return null;
        },
        substringBefore: function(str, separator) {
            if (StringUtils.isEmpty(str) || separator == null) {
                return str;
            }
            if (separator.length == 0) {
                return "";
            }
            var pos = str.indexOf(separator);
            if (pos == -1) {
                return str;
            }
            return str.substring(0, pos);
        },
        substringAfter: function(str, separator) {
            if (StringUtils.isEmpty(str)) {
                return str;
            }
            if (separator == null) {
                return "";
            }
            var pos = str.indexOf(separator);
            if (pos == -1) {
                return "";
            }
            return str.substring(pos + separator.length);
        },
        substringBeforeLast: function(str, separator) {
            if (StringUtils.isEmpty(str) || StringUtils.isEmpty(separator)) {
                return str;
            }
            var pos = str.lastIndexOf(separator);
            if (pos == -1) {
                return str;
            }
            return str.substring(0, pos);
        },
        substringAfterLast: function(str, separator) {
            if (StringUtils.isEmpty(str)) {
                return str;
            }
            if (StringUtils.isEmpty(separator)) {
                return "";
            }
            var pos = str.lastIndexOf(separator);
            if (pos == -1 || pos == (str.length - separator.length)) {
                return "";
            }
            return str.substring(pos + separator.length);
        }
    };
 
}();
 

猜你喜欢

转载自blog.csdn.net/qq_35568099/article/details/82496562