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 = {
            '"': """,
            '&': "&",
            "'": "'",
            '<': "&lt;",
            '>': "&gt;"
        },

        htmlDecodeMap = {
            '&#39;': "'",
            '&amp;': "&",
            '&gt;': ">",
            '&lt;': "<",
            '&quot;': '"'
        },

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

        htmlDecodeRegex = /(&amp;|&gt;|&lt;|&quot;|&#39;|&#[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('<div class="{0}">{1}</div>', cls, text); * // str的内容是 <div class="css-class">内容</div> * * @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,格式化)