class StringUtils { /** * 匹配中文字符 * @param str 需要匹配的字符串 * @return */ public static matchChineseWord(str: string): string[] { //中文字符的unicode值[\u4E00-\u9FA5] let patternA: RegExp = /[\u4E00-\u9FA5]+/gim; return str.match(patternA); } /** * 去除字符串左端的空白字符 * @param target 目标字符串 * @return */ public static lTrim(target: string): string { let startIndex: number = 0; while (this.isWhiteSpace(target.charAt(startIndex))) { startIndex++; } return target.slice(startIndex, target.length); } /** * 去除字符串右端的空白字符 * @param target 目标字符串 * @return */ public static rTrim(target: string): string { let endIndex: number = target.length - 1; while (this.isWhiteSpace(target.charAt(endIndex))) { endIndex--; } return target.slice(0, endIndex + 1); } /** * 返回一个去除2段空白字符的字符串 * @param target * @return 返回一个去除2段空白字符的字符串 */ public static trim(target: string): string { if (target == null) { return null; } return this.rTrim(this.lTrim(target)); } /** * 返回该字符是否为空白字符 * @param str * @return 返回该字符是否为空白字符 */ public static isWhiteSpace(str: string): boolean { if (str == " " || str == "\t" || str == "\r" || str == "\n") return true; return false; } /** * 返回执行替换后的字符串 * @param mainStr 待查找字符串 * @param targetStr 目标字符串 * @param replaceStr 替换字符串 * @param caseMark 是否忽略大小写 * @return 返回执行替换后的字符串 */ public static replaceMatch(mainStr: string, targetStr: string, replaceStr: string, caseMark: boolean = false): string { let len: number = mainStr.length; let tempStr: string = ""; let isMatch: boolean = false; let tempTarget: string = caseMark == true ? targetStr.toLowerCase() : targetStr; for (let i: number = 0; i < len; i++) { isMatch = false; if (mainStr.charAt(i) == tempTarget.charAt(0)) { if (mainStr.substr(i, tempTarget.length) == tempTarget) { isMatch = true; } } if (isMatch) { tempStr += replaceStr; i = i + tempTarget.length - 1; } else { tempStr += mainStr.charAt(i); } } return tempStr; } /** * 特殊符号字符串 */ private static specialSigns: string[] = [ '&', '&', '<', '<', '>', '>', '"', '"', "'", ''', '®', '®', '©', '©', '™', '™', ]; /** * 用html实体换掉字符窜中的特殊字符 * @param str 需要替换的字符串 * @param reversion 是否翻转替换:将转义符号替换为正常的符号 * @return 换掉特殊字符后的字符串 */ public static htmlSpecialChars(str: string, reversion: boolean = false): string { let len: number = this.specialSigns.length; for (let i: number = 0; i < len; i += 2) { let from: string; let to: string; from = this.specialSigns[i]; to = this.specialSigns[i + 1]; if (reversion) { let temp: string = from; from = to; to = temp; } str = this.replaceMatch(str, from, to); } return str; } /** * 给数字字符前面添 "0" * *
 
    * 
    * trace( StringFormat.zfill('1') );
    * // 01
    * 
    * trace( StringFormat.zfill('16', 5) );
    * // 00016
    * 
    * trace( StringFormat.zfill('-3', 3) );
    * // -03
    * 
    * 
* * @param str 要进行处理的字符串 * @param width 处理后字符串的长度, * 如果str.length >= width,将不做任何处理直接返回原始的str。 * @return * */ public static zfill(str: string, width: number = 2): string { if (!str) { return str; } width = Math.floor(width); let slen: number = str.length; if (slen >= width) { return str; } let negative: boolean = false; if (str.substr(0, 1) == '-') { negative = true; str = str.substr(1); } let len: number = width - slen; for (let i: number = 0; i < len; i++) { str = '0' + str; } if (negative) { str = '-' + str; } return str; } /** * 翻转字符串 * @param str 字符串 * @return 翻转后的字符串 */ public static reverse(str: string): string { if (str.length > 1) return this.reverse(str.substring(1)) + str.substring(0, 1); else return str; } /** * 截断某段字符串 * @param str 目标字符串 * @param start 需要截断的起始索引 * @param len 截断长度 * @param order 顺序,true从字符串头部开始计算,false从字符串尾巴开始结算。 * @return 截断后的字符串 */ public static cutOff(str: string, start: number, len: number, order: boolean = true): string { start = Math.floor(start); len = Math.floor(len); let length: number = str.length; if (start > length) start = length; let s: number = start; let e: number = start + len; let newStr: string; if (order) { newStr = str.substring(0, s) + str.substr(e, length); } else { s = length - 1 - start - len; e = s + len; newStr = str.substring(0, s + 1) + str.substr(e + 1, length); } return newStr; } /**{0} 字符替换 */ public static strReplace(str: string, rStr: string[]): string { let i: number = 0, len: number = rStr.length; for (; i < len; i++) { if (rStr[i] == null || rStr[i] == "") { rStr[i] = "无"; } str = str.replace("{" + i + "}", rStr[i]); } return str } }