string.js

/**
 * 去掉字符串左边的非空字符
 * @param {string} str 字符串
 * @return {string}
 */
function ltrim(str){
    return str.replace(/^\s+/,"");
}
/**
 * 去掉字符串右边的非空字符
 * @param {string} str 字符串
 * @return {string}
 */
function rtrim(str){
    return str.replace(/\s+$/,"");
}
/**
 * 去掉字符串左右两边的非空字符
 * @param {string} str 字符串
 * @return {string}
 */
function trim(str){
    return ltrim(rtrim(str));
}


/**
 *
 * @param {*} num
 * @returns {String}
 */
function toThousandsFilter(num) {
    let cent = 2;
    num = num.toString().replace(/\$|\,/g, '');
    // 检查传入数值为数值类型
    if (isNaN(num))
        num = "0";
    // 获取符号(正/负数)
    let sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * Math.pow(10, cent) + 0.50000000001); // 把指定的小数位先转换成整数.多余的小数位四舍五入
    let cents = num % Math.pow(10, cent); // 求出小数位数值
    num = Math.floor(num / Math.pow(10, cent)).toString(); // 求出整数位数值
    cents = cents.toString(); // 把小数位转换成字符串,以便求小数位长度
    // 补足小数位到指定的位数
    while (cents.length < cent)
        cents = "0" + cents;

    // 对整数部分进行千分位格式化.
    for (let i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));

    if (cent > 0)
        return (((sign) ? '' : '-') + num + '.' + cents);
    else
        return (((sign) ? '' : '-') + num);
}

/**
 *
 * @param {*} s
 * @param {*} n
 */
function numFormat(s, n) {
    n = parseInt(n) || 2;
    s = parseFloat(s) || 0;
    n = n >= 0 ? n : 0;
    s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
    var l = s.split('.')[0].split('').reverse();
    r = s.split('.')[1] || '';
    t = '';
    for (i = 0; i < l.length; i++) {
        t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? ',' : '');
    }
    return t.split('').reverse().join('') + (r != '' ? ('.' + r) : '');
}

export {ltrim, rtrim, trim, toThousandsFilter, numFormat }