JS常用函数汇总详解编程语言

/** 
 * 根据电话号码获取位置信息 
 * @param phoneNo 电话号码 
 * @param succFunc 调用接口成功的回调函数 
 *        回调函数入参的数据格式如下: 
 *            { 
              "mobile": "18576648552", 
              "province": "广东", 
              "isp": "中国联通", 
              "stock": "1", 
              "amount": "10000", 
              "maxprice": "0", 
              "minprice": "0", 
              "cityname": "深圳" 
            } 
 */ 
function getPositionByPhoneNo(phoneNo, succFunc) 
{ 
    $.ajax({ 
        url: "http://virtual.paipai.com/extinfo/GetMobileProductInfo", 
        type: "post", 
        data: {mobile: phoneNo, amount: 10000}, 
        dataType: "jsonp", 
        jsonp: "callname", 
        jsonpCallback: "getPhoneNumInfoExtCallback", 
        success: function(data){ 
            if(succFunc) 
            { 
                succFunc(data); 
            } 
        }, 
        error: function(xhr, errorCode){ 
            console.log("根据手机号获取归属地服务失败【前端】"); 
            if(succFunc) 
            { 
                succFunc({}); 
            } 
        } 
    }); 
} 
  
/** 
 * 将数字金额进行千位分隔 
 * @param number 需要分隔的数字 
 * @return 返回分割后的数字 
 */ 
function formatFloatToThousand(number)  
{ 
    number = number.toString(); 
    var resultArray = []; 
    var pointPosi = number.indexOf("."); // 取得小数点的位置 
    var int = pointPosi == -1 ? number : number.substring(0, pointPosi); // 取得小数中的整数部分 
    var float = pointPosi == -1 ? '' : number.substring(pointPosi + 1, number.length); 
    var remainSum = int.length % 3; // 超过 3 的位数 
    if(int.length < 3) 
    { 
        return number; 
    } 
    if(remainSum == 0) 
    { 
        resultArray = resultArray.concat(int.match(//d{3}/g)); 
    } 
    else 
    { 
        resultArray.push(int.substring(0, remainSum)); 
        int = int.substring(remainSum); 
        resultArray = resultArray.concat(int.match(//d{3}/g)); 
    } 
    return pointPosi == -1 ? resultArray.join(',') : resultArray.join(',') + '.' + float; 
} 
  
/** 
 * 测量文本的宽度 
 * @param $source 需要测量文本宽度的 jquery 对象 
 */ 
function measureTxtWidth($source) 
{ 
    var txtWidth = null; 
    var text = $source.text(); 
    var $span = $("<span>" + text + "").appendTo("body"); 
    $span.css({whiteSpace: "nowrap", font: $source.css("font")}); 
    txtWidth = $span.width(); 
    $span.remove(); 
    return txtWidth; 
} 
  
使用新浪开放 api 获取当前位置: 
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 
返回的数据格式如下: 
{ 
  "ret": 1, 
  "start": "180.149.132.0", 
  "end": "180.149.159.255", 
  "country": "中国", // 国家 
  "province": "北京", // 省份 
  "city": "北京", // 城市 
  "district": "", 
  "isp": "电信", // 运营商 
  "type": "企业", 
  "desc": "中国电信集团电信" 
} 
  
/** 
 * 获取地理定位信息,使用腾讯地图进行定位 
 * @param getSuccFunc 获取成功的回调函数回调函数 
 */ 
function getGeolocation(getSuccFunc) 
{ 
    var succResult = {}; // 请求位置成功的结果 
    var geolocation = new soso.maps.Geolocation(); 
    var positionParam = { 
        locationMode: "CLIENT_IP" // ip定位 
    }; 
    var positionCallback = function(data, status){ 
        if(status === "OK") 
        { 
            if(data && data.latLng) 
            { 
                succResult.latitude = data.latLng.lat; // 纬度 
                succResult.longitude = data.latLng.lng; // 经度 
            } 
        } 
        if(getSuccFunc) 
        { 
            getSuccFunc(succResult); 
        } 
    }; 
    geolocation.position(positionParam, positionCallback); 
} 
  
/** 
 * 将数字转换成字符串的通用方法 
 * 说明:直接使用 toFixed 方法会进行四舍五入,因此写一个将数字转换为指定小数位数字符串的方法 
 * @param sourceData 源数据 
 * @param decimalLen 小数的位数 
 */ 
function numberToString(sourceData, decimalLen) 
{ 
    decimalLen = typeof(decimalLen) == undefined ? 0 : decimalLen; 
    var result = sourceData + ""; 
    var integerStr = null; // 整数部分 
    var decimalStr = null; // 小数部分 
    if(result.indexOf(".") == -1) 
    { 
        result = Number(result).toFixed(decimalLen); 
    } 
    else 
    { 
        integerStr = result.substring(0, result.indexOf(".")); // 整数部分 
        decimalStr = //./d+/.exec(result); // 小数部分 
        decimalStr = Number(decimalStr); 
        decimalStr = decimalStr.toPrecision(decimalLen).substr(0, decimalLen + 2); 
        result = integerStr + decimalStr.substr(1); 
    } 
    return result; 
} 
  
/** 
 * 根据电话号码获取位置信息,使用拍拍开放 api 
 * @param phoneNo 电话号码 
 * @param succFunc 调用接口成功的回调函数 
 *        回调函数入参的数据格式如下: 
 *            { 
              "mobile": "18576648552", 
              "province": "广东", 
              "isp": "中国联通", 
              "stock": "1", 
              "amount": "10000", 
              "maxprice": "0", 
              "minprice": "0", 
              "cityname": "深圳" 
            } 
 */ 
function getPositionByPhoneNo(phoneNo, succFunc) 
{ 
    $.ajax({ 
        url: "http://virtual.paipai.com/extinfo/GetMobileProductInfo", 
        type: "post", 
        data: {mobile: phoneNo, amount: 10000}, 
        dataType: "jsonp", 
        jsonp: "callname", 
        jsonpCallback: "getPhoneNumInfoExtCallback", 
        success: function(data){ 
            if(succFunc) 
            { 
                succFunc(data); 
            } 
        }, 
        error: function(xhr, errorCode){ 
            console.log("根据手机号获取归属地服务失败【前端】"); 
        } 
    }); 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8872.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论