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

2 篇文章 0 订阅
2 篇文章 0 订阅

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);
        }
    };
 
}();
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值