js常用工具方法集合

本文介绍了两种实用的JavaScript函数:一种用于将数字格式化为带有千分位分隔符的形式,另一种则用于移除这种格式以便进行数值计算。此外还提供了一种从URL中获取参数的方法及获取文件扩展名的功能,并探讨了Unicode编码与中文之间的相互转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 如何将浮点数点左边的数每三位添加一个逗号,如12000000.11转化为『12,000,000.11』?
function formatNumber(value) {
    var re = /^(\-?)(\d{1,3}(,\d\d\d)*(\.\d+)?|\d+(\.\d+)?)$/;
    if (!re.test(value)) {
        return value;
    }
    value += '';
    const list = value.split('.');
    const prefix = list[0].charAt(0) === '-' ? '-' : '';
    let num = prefix ? list[0].slice(1) : list[0];
    let result = '';
    while (num.length > 3) {
        result = `,${num.slice(-3)}${result}`;
        num = num.slice(0, num.length - 3);
    }
    if (num) {
        result = num + result;
    }
    return `${prefix}${result}${list[1] ? `.${list[1]}` : ''}`;
}

2.移除千分位。如『12,000,000.11』转化为 12000000.11

function removalThousandths(num)
{
    var re = /^(\-?)(\d{1,3}(,\d\d\d)*(\.\d+)?|\d+(\.\d+)?)$/;
    if (!re.test(num)) {
        return num;
    }
    var x = num.toString().split(',');
    return parseFloat(x.join(""));
}
  1. 获取地址栏上携带的参数,如http://www.baidu.com?test=shuju;
function getUrlParam(name) {
    if (window.location.href.indexOf('?') >= 0) {
        var a = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        var t;
        var i = 0;
        var l = a.length;
        for (; i < l; i++) {
            if ((t = a[i].split('='))[0] === name) return t[1];
        }
    }
    return null;
}

getUrlParam('test'); // 得到shuju

4.获取文件后缀

function getFileExtension(filename) {
    return filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);
  }

5.unicode编码与中文的互相转化


function tounicode(data)
{
  if(data == '') return '请输入汉字';
  var str ='';
  for(var i=0;i<data.length;i++)
  {
   str+="\\\\u"+parseInt(data[i].charCodeAt(0),10).toString(16);
  }
  return str;
}

EG: tounicode('你好啊') => "\\u4f60\\u597d\\u554a"
function tohanzi(data)
{
  if(data == '') return '请输入十六进制unicode';
  data = data.split("\\u");
  var str ='';
  for(var i=0;i<data.length;i++)
  {
    str+=String.fromCharCode(parseInt(data[i],16).toString(10));
  }
  return str;
}

EG: tohanzi('\\u4f60\\u597d\\u554a') => 你好啊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值