JavaScript常用字符串处理方法

StringUtils提供一些常用的字符串处理方法,包括除去字符串两端空白、字符串左右两边填补字符、字符串格式化、字符串html编码和字符串html解码。

方法 描述
StringUtils.trim(str) 除去字符串两端空白
StringUtils.format(str, object…) 字符串格式化
StringUtils.leftPad(str, size, character) 在字符串左边填补字符character,填补后的字符串长度为size
StringUtils.rightPad(str, size, character) 在字符串右边填补字符character,填补后的字符串长度为size
StringUtils.htmlEncode(str) 字符串中的html字符转义
StringUtils.htmlDecode(str) 字符串中的html字符还原


/**
 * 常用的字符串处理方法
 * @author [email protected]
 * @date 2015-08-12
 */
StringUtils = (function(){
    var
        // 字符串去掉两边空白正则表达式
        trimRegex = /^[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+|[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+$/g,

        // 字符串格式化正则表达式
        formatRegex = /\{(\d+)\}/g,

        htmlEncodeMap = {
            '"': """,
            '&': "&",
            "'": "'",
            '<': "<",
            '>': ">"
        },

        htmlDecodeMap = {
            ''': "'",
            '&': "&",
            '>': ">",
            '<': "<",
            '"': '"'
        },

        htmlEncodeRegex = /(&|>|<|"|')/g,

        htmlDecodeRegex = /(&|>|<|"|'|&#[0-9]{1,5};)/g;

    return {
        /**
         * 除去字符串两端的空白字符
         * @param   str  {String}  字符串
         * @return  返回处理后的字符串
         */
        trim: function(str){
            return str.replace(trimRegex, '');
        },

        /**
         * 允许用格式化的方式给传值
         * var cls = 'css-class', text = '内容';
         * var str = Rhui.String.format('
{1}
', cls, text); * // str的内容是
内容
* * @param str {String} 待格式化的字符串 * @param params... {Object} 与字符串中{0}、{1}...匹配的内容 * @return 返回格式化后的字符串 */
format: function(str) { var i, args = arguments, len = args.length, arr = []; for(i = 1; i < len; i++){ arr.push(args[i]); } return str.replace(formatRegex, function(m, i) { return arr[i]; }); }, /** * 填补字符串左边 * @param str {String} 原字符串 * @param size {Number} 填补后的长度 * @param character {String} 填补的字符,如果不填则为空字符' ' * @return 返回填补后的字符串 */ leftPad: function(str, size, character) { var result = '' + str; if(Object.prototype.toString.call(character) !== '[object String]'){ character = ' '; } while (result.length < size) { result = character + result; } return result; }, /** * 填补字符串右边 * @param str {String} 原字符串 * @param size {Number} 填补后的长度 * @param character {String} 填补的字符,如果不填则为空字符' ' * @return 返回填补后的字符串 */ rightPad: function(str, size, character) { var result = '' + str; if(Object.prototype.toString.call(character) !== '[object String]'){ character = ' '; } while (result.length < size) { result += character; } return result; }, /** * 把字符串中的html字符转义 * @param str {String} * @return 返回转义后的字符 */ htmlEncode: function(str) { if(Object.prototype.toString.call(str) === '[object String]'){ return str.replace(htmlEncodeRegex, function(match, val){ return htmlEncodeMap[val]; }); }else{ return str; } }, /** * 把字符串中的html字符解码 * @param str {String} * @return 返回解码后的字符串 */ htmlDecode: function(str) { if(Object.prototype.toString.call(str) === '[object String]'){ return str.replace(htmlDecodeRegex, function(match, val){ return htmlDecodeMap[val]; }); }else{ return str; } } }; })();

你可能感兴趣的:(JavaScript)