字符串工具类,仅供参考

StringUtils = {isEmpty: function(input) {return input == null || input == '';},isNotEmpty: function(input) {return !this.isEmpty(input);},isBlank: function(input) {return input == null || /^\s*$/.test(input);},isNotBlank: function(input) {return !this.isBlank(input);},trim: function(input) {return input.replace(/^\s+|\s+$/, '');},trimToEmpty: function(input) {return input == null ? "" : this.trim(input);},startsWith: function(input, prefix) {return input.indexOf(prefix) === 0;},endsWith: function(input, suffix) {return input.lastIndexOf(suffix) === 0;},contains: function(input, searchSeq) {return input.indexOf(searchSeq) >= 0;},equals: function(input1, input2) {return input1 == input2;},equalsIgnoreCase: function(input1, input2) {return input1.toLocaleLowerCase() == input2.toLocaleLowerCase();},containsWhitespace: function(input) {return this.contains(input, ' ');},//生成指定个数的字符repeat: function(ch, repeatTimes) {var result = "";for(var i = 0; i < repeatTimes; i++) {result += ch;}return result;},deleteWhitespace: function(input) {return input.replace(/\s+/g, '');},rightPad: function(input, size, padStr) {return input + this.repeat(padStr, size);},leftPad: function(input, size, padStr) {return this.repeat(padStr, size) + input;},//首小写字母转大写capitalize: function(input) {var strLen = 0;if(input == null || (strLen = input.length) == 0) {return input;}return input.replace(/^[a-z]/, function(matchStr) {return matchStr.toLocaleUpperCase();});},//首大写字母转小写uncapitalize: function(input) {var strLen = 0;if(input == null || (strLen = input.length) == 0) {return input;}return input.replace(/^[A-Z]/, function(matchStr) {return matchStr.toLocaleLowerCase();});},//大写转小写,小写转大写swapCase: function(input) {return input.replace(/[a-z]/ig, function(matchStr) {if(matchStr >= 'A' && matchStr <= 'Z') {return matchStr.toLocaleLowerCase();} else if(matchStr >= 'a' && matchStr <= 'z') {return matchStr.toLocaleUpperCase();}});},//统计含有的子字符串的个数countMatches: function(input, sub) {if(this.isEmpty(input) || this.isEmpty(sub)) {return 0;}var count = 0;var index = 0;while((index = input.indexOf(sub, index)) != -1) {index += sub.length;count++;}return count;},//只包含字母isAlpha: function(input) {return /^[a-z]+$/i.test(input);},//只包含字母、空格isAlphaSpace: function(input) {return /^[a-z\s]*$/i.test(input);},//只包含字母、数字isAlphanumeric: function(input) {return /^[a-z0-9]+$/i.test(input);},//只包含字母、数字和空格isAlphanumericSpace: function(input) {return /^[a-z0-9\s]*$/i.test(input);},//数字isNumeric: function(input) {return /^(?:[1-9]\d*|0)(?:\.\d+)?$/.test(input);},//小数isDecimal: function(input) {return /^[-+]?(?:0|[1-9]\d*)\.\d+$/.test(input);},//负小数isNegativeDecimal: function(input) {return /^\-?(?:0|[1-9]\d*)\.\d+$/.test(input);},//正小数isPositiveDecimal: function(input) {return /^\+?(?:0|[1-9]\d*)\.\d+$/.test(input);},//整数isInteger: function(input) {return /^[-+]?(?:0|[1-9]\d*)$/.test(input);},//正整数isPositiveInteger: function(input) {return /^\+?(?:0|[1-9]\d*)$/.test(input);},//负整数isNegativeInteger: function(input) {return /^\-?(?:0|[1-9]\d*)$/.test(input);},//只包含数字和空格isNumericSpace: function(input) {return /^[\d\s]*$/.test(input);},isWhitespace: function(input) {return /^\s*$/.test(input);},isAllLowerCase: function(input) {return /^[a-z]+$/.test(input);},isAllUpperCase: function(input) {return /^[A-Z]+$/.test(input);},defaultString: function(input, defaultStr) {return input == null ? defaultStr : input;},defaultIfBlank: function(input, defaultStr) {return this.isBlank(input) ? defaultStr : input;},defaultIfEmpty: function(input, defaultStr) {return this.isEmpty(input) ? defaultStr : input;},//字符串反转reverse: function(input) {if(this.isBlank(input)) {input;}return input.split("").reverse().join("");},//删掉特殊字符(英文状态下)removeSpecialCharacter: function(input) {return input.replace(/[!-/:-@\[-`{-~]/g, "");},//只包含特殊字符、数字和字母(不包括空格,若想包括空格,改为[ -~])isSpecialCharacterAlphanumeric: function(input) {return /^[!-~]+$/.test(input);},/*** 校验时排除某些字符串,即不能包含某些字符串* @param {Object} conditions:里面有多个属性,如下:* * @param {String} matcherFlag 匹配标识* 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文;* 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文;* 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文;* 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文;* 100:所有字符;* @param {Array} excludeStrArr 排除的字符串,数组格式* @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5* @param {Boolean} ignoreCase 是否忽略大小写* conditions={matcherFlag:"0",excludeStrArr:[],length:"",ignoreCase:true}*/isPatternMustExcludeSomeStr: function(input, conditions) {//参数var matcherFlag = conditions.matcherFlag;var excludeStrArr = conditions.excludeStrArr;var length = conditions.length;var ignoreCase = conditions.ignoreCase;//拼正则var size = excludeStrArr.length;var regex = (size == 0) ? "^" : "^(?!.*(?:{0}))";var subPattern = "";for(var i = 0; i < size; i++) {excludeStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(excludeStrArr[i]);subPattern += excludeStrArr[i];if(i != size - 1) {subPattern += "|";}}regex = this.format(regex, [subPattern]);switch(matcherFlag) {case '0':regex += "\\d";break;case '1':regex += "[a-zA-Z]";break;case '2':regex += "[a-z]";break;case '3':regex += "[A-Z]";break;case '4':regex += "[!-/:-@\[-`{-~]";break;case '5':regex += "[\u4E00-\u9FA5]";break;case '6':regex += "[a-zA-Z0-9]";break;case '7':regex += "[a-z0-9]";break;case '8':regex += "[A-Z0-9]";break;case '9':regex += "[!-~]";break;case '10':regex += "[0-9\u4E00-\u9FA5]";break;case '11':regex += "[a-z!-/:-@\[-`{-~]";break;case '12':regex += "[A-Z!-/:-@\[-`{-~]";break;case '13':regex += "[a-zA-Z!-/:-@\[-`{-~]";break;case '14':regex += "[a-z\u4E00-\u9FA5]";break;case '15':regex += "[A-Z\u4E00-\u9FA5]";break;case '16':regex += "[a-zA-Z\u4E00-\u9FA5]";break;case '17':regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '18':regex += "[\u4E00-\u9FA5!-~]";break;case '19':regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '20':regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '100':regex += "[\s\S]";break;default:alert(matcherFlag + ":This type is not supported!");}regex += this.isNotBlank(length) ? "{" + length + "}" : "+";regex += "$";var pattern = new RegExp(regex, ignoreCase ? "i" : "");return pattern.test(input);},/*** @param {String} message* @param {Array} arr* 消息格式化*/format: function(message, arr) {return message.replace(/{(\d+)}/g, function(matchStr, group1) {return arr[group1];});},/*** 把连续出现多次的字母字符串进行压缩。如输入:aaabbbbcccccd  输出:3a4b5cd* @param {String} input* @param {Boolean} ignoreCase : true or false */compressRepeatedStr: function(input, ignoreCase) {var pattern = new RegExp("([a-z])\\1+", ignoreCase ? "ig" : "g");return result = input.replace(pattern, function(matchStr, group1) {return matchStr.length + group1;});},/*** 校验必须同时包含某些字符串* @param {String} input* @param {Object} conditions:里面有多个属性,如下:* * @param {String} matcherFlag 匹配标识* 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文;* 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文;* 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文;* 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文;* 100:所有字符;* @param {Array} excludeStrArr 排除的字符串,数组格式* @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5* @param {Boolean} ignoreCase 是否忽略大小写* conditions={matcherFlag:"0",containStrArr:[],length:"",ignoreCase:true}* */isPatternMustContainSomeStr: function(input, conditions) {//参数var matcherFlag = conditions.matcherFlag;var containStrArr = conditions.containStrArr;var length = conditions.length;var ignoreCase = conditions.ignoreCase;//创建正则var size = containStrArr.length;var regex = "^";var subPattern = "";for(var i = 0; i < size; i++) {containStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(containStrArr[i]);subPattern += "(?=.*" + containStrArr[i] + ")";}regex += subPattern;switch(matcherFlag) {case '0':regex += "\\d";break;case '1':regex += "[a-zA-Z]";break;case '2':regex += "[a-z]";break;case '3':regex += "[A-Z]";break;case '4':regex += "[!-/:-@\[-`{-~]";break;case '5':regex += "[\u4E00-\u9FA5]";break;case '6':regex += "[a-zA-Z0-9]";break;case '7':regex += "[a-z0-9]";break;case '8':regex += "[A-Z0-9]";break;case '9':regex += "[!-~]";break;case '10':regex += "[0-9\u4E00-\u9FA5]";break;case '11':regex += "[a-z!-/:-@\[-`{-~]";break;case '12':regex += "[A-Z!-/:-@\[-`{-~]";break;case '13':regex += "[a-zA-Z!-/:-@\[-`{-~]";break;case '14':regex += "[a-z\u4E00-\u9FA5]";break;case '15':regex += "[A-Z\u4E00-\u9FA5]";break;case '16':regex += "[a-zA-Z\u4E00-\u9FA5]";break;case '17':regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '18':regex += "[\u4E00-\u9FA5!-~]";break;case '19':regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '20':regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '100':regex += "[\s\S]";break;default:alert(matcherFlag + ":This type is not supported!");}regex += this.isNotBlank(length) ? "{" + length + "}" : "+";regex += "$";var pattern = new RegExp(regex, ignoreCase ? "i" : "");return pattern.test(input);},//中文校验isChinese: function(input) {return /^[\u4E00-\u9FA5]+$/.test(input);},//去掉中文字符removeChinese: function(input) {return input.replace(/[\u4E00-\u9FA5]+/gm, "");},//转义元字符escapeMetacharacter: function(input) {var metacharacter = "^$()*+.[]|\\-?{}";if(metacharacter.indexOf(input) >= 0) {input = "\\" + input;}return input;},//转义字符串中的元字符escapeMetacharacterOfStr: function(input) {return input.replace(/[-$^()*+.\[\]|\\?{}]/gm, "\\$&");},//中文转为unicode编码chineseToUnicode: function(input) {return input.replace(/[\u4E00-\u9FA5]/g, function(matchStr) {return "\\u" + matchStr.charCodeAt(0).toString(16);      });}};

javascript常用工具类封装相关推荐

  1. 【JavaScript学习】JavaScript 常用工具类封装

    文章目录 1.JavaScript 常用工具类封装 (1)获得浏览器地址所有参数 (2)将json转为get参数 (3)格式校验工具类 (4)数组操作工具类 (5)表单取值工具类 (6)时间转换工具类 ...

  2. javascript常用工具类整理(copy)

    JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串return Object.prototype.toS ...

  3. javascript常用工具类的封装

    目录 一.js数组工具类 工具类方法 工具类代码 测试MyArrayFn中的所有方法 二.js字符串校验工具类 工具类方法 工具类代码 三.js时间Date工具类 工具类方法 工具类代码 四.js浏览 ...

  4. JavaScript常用工具类整理(总结版)

    导读:在前端开发过程中需要对常用的功能模块进行封装,常用的方法多次调用需要整合,保证组件的复用性与程序的可维护性,这里总结一下,便于后续的使用! 目录 1.全局声明工具类 2.定时器 3.判断变量是否 ...

  5. JavaScript常用工具方法封装

    因为工作中经常用到这些方法,所有便 JavaScript 1. type 类型判断 isString (o) { //是否字符串return Object.prototype.toString.cal ...

  6. JavaScript常用工具类大全(50套原生js方法)建议收藏

    原生JavaScript实现字符串长度截取 function cutstr(str, len) {var temp;var icount = 0;var patrn = /[^\x00-\xff]/; ...

  7. javascript 总结(常用工具类的封装)(转)

    转载地址:http://dzblog.cn/article/5a6f48afad4db304be1e7a5f javascript 总结(常用工具类的封装) JavaScript 1. type 类型 ...

  8. javascript 总结(常用工具类的封装,转)

    javascript 总结(常用工具类的封装) 前言 因为工作中经常用到这些方法,所有便把这些方法进行了总结. JavaScript 1. type 类型判断 isString (o) { //是否字 ...

  9. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

最新文章

  1. 企业信息化的定义、内涵
  2. python中int函数规则_python数字规则和内建函数
  3. 服务器安全维护包含,服务器安全维护包含
  4. 教育部推出首批490门“国家精品在线开放课程”
  5. 【英语学习】【Level 07】U01 Making friends L1 New kid on the block
  6. 1 Linux挂载光盘与U盘
  7. c语言程序分数化简,【C/C++】分数化简
  8. dict.txt(上一个程序的文件)
  9. systemd.timer定时任务
  10. 图解:什么是拓扑排序?
  11. 第十二课 Java基础篇——面向对象进阶(三)
  12. oracle latch chain,Oracle Latch及latch矛盾
  13. 软件测试需求频繁变更,软件测试人员如何测试需求频繁变动的项目
  14. 自学HTTP RCF体会
  15. MBA都包括哪些课程?有哪些MBA专业书籍值得推荐?
  16. Android第三方支付
  17. UniswapV2Library.sol
  18. 【DIY娱乐】手机链接PC玩体感游戏
  19. 2023年1月12日,openKylin 0.9.5正式发布!
  20. 概率论考研笔记(一)

热门文章

  1. MVC的Model Binder总结
  2. java thumbnailator 做图片处理
  3. 深入理解 Android Https
  4. 软件工程2018第二次团队作业
  5. 关于ios中编译ffmpeg0.9.2库
  6. nyoj 925 国王的烦恼(最小生成树)
  7. 歌唱online活动目录数据库还原[为企业维护windows server 2008系列二]
  8. oracle-rman-list命令收集
  9. Juniper SRX 常用命令
  10. React编写input组件传参共用onChange