/** * 字符操作工具类 * @author cls * @date 2019-05-17 */ import md5 from "js-md5"; import pinyin from 'js-pinyin'; export const StringUtil = { /** * showdoc * @catalog JS工具类/StringUtil * @title 获取随机字符串 * @description 根据传入字符串长度,获取随机字符串id * @method static * @url import { StringUtil } from '@birt/funclib/StringUtil.js' * @param len 可选 随机字符长度 * @return String 随机字符 */ randomString(len) { len = len || 32; var $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678'; var maxPos = $chars.length; var str = ''; for (var i = 0; i < len; i++) { str += $chars.charAt(Math.floor(Math.random() * maxPos)); } return str; }, /** * showdoc * @catalog API/工具/String * @title 获取指定范围随机数 * @description 获取中文全拼音 * @url randomInt(min, max) * @method $instance.randomInt(min, max) * @param min 必选 Int 起止数字 * @param max 必选 Int 结束数字 * @return String * @number 60 */ randomInt: function (min, max) { var Range = max - min; var Rand = Math.random(); return (min + Math.round(Rand * Range)); }, /** * showdoc * @catalog API/工具/String * @title 生成MD5 * @description 生成MD5 * @url md5(str) * @method $instance.md5(str) * @param str 必选 String 需生成的字符 * @return String * @number 60 */ md5: function (str) { return md5(str); }, /** * showdoc * @catalog API/工具/String * @title 获取GUID * @description 获取GUID * @url guid() * @method $instance.guid() * @return String * @number 60 */ guid: function () { var nowDateTime = new Date(); var myRandom1 = this.randomInt(1, 1000); var myRandom2 = this.randomInt(1, 1000); var myRandom3 = this.randomInt(1, 1000); var decodeStr = nowDateTime.valueOf() + "-" + nowDateTime.getMilliseconds() + "-" + myRandom1 + "-" + myRandom2 + "-" + myRandom3; var encodeStr = this.md5(decodeStr); var guid = encodeStr.substring(0, 8) + "-" + encodeStr.substring(8, 12) + "-" + encodeStr.substring(12, 16) + "-" + encodeStr.substring(16, 20) + "-" + encodeStr.substring(20, 32); return guid.toUpperCase(); }, /** * showdoc * @catalog API/工具/String * @title 字符串非空 * @description 判断字符串非空 * @url isEmpty(obj) * @method StringUtil.isEmpty(obj) * @param obj 必选 Object 被判断对象 * @return Boolean * @number 60 */ isEmpty(obj) { return (typeof obj === 'undefined' || obj === null || obj === ""); }, /** * showdoc * @catalog API/工具/String * @title 获取首字母拼音 * @description 获取首字母拼音 * @url getCamelChars(label) * @method StringUtil.getCamelChars(label) * @param label 必选 String 中文字符 * @return String * @number 60 */ getCamelChars(label) { return pinyin.getCamelChars(label || "") } };