js常用函數(shù)匯總

字號(hào):


    /**
    * 根據(jù)電話號(hào)碼獲取位置信息
    * @param phoneNo 電話號(hào)碼
    * @param succFunc 調(diào)用接口成功的回調(diào)函數(shù)
    * 回調(diào)函數(shù)入?yún)⒌臄?shù)據(jù)格式如下:
    * {
    "mobile": "18576648552",
    "province": "廣東",
    "isp": "中國(guó)聯(lián)通",
    "stock": "1",
    "amount": "10000",
    "maxprice": "0",
    "minprice": "0",
    "cityname": "深圳"
    }
    */
    function getPositionByPhoneNo(phoneNo, succFunc)
    {
    $.ajax({
    url: "",
    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("根據(jù)手機(jī)號(hào)獲取歸屬地服務(wù)失敗【前端】");
    if(succFunc)
    {
    succFunc({});
    }
    }
    });
    }
    /**
    * 將數(shù)字金額進(jìn)行千位分隔
    * @param number 需要分隔的數(shù)字
    * @return 返回分割后的數(shù)字
    */
    function formatFloatToThousand(number)
    {
    number = number.toString();
    var resultArray = [];
    var pointPosi = number.indexOf("."); // 取得小數(shù)點(diǎn)的位置
    var int = pointPosi == -1 ? number : number.substring(0, pointPosi); // 取得小數(shù)中的整數(shù)部分
    var float = pointPosi == -1 ? '' : number.substring(pointPosi + 1, number.length);
    var remainSum = int.length % 3; // 超過(guò) 3 的位數(shù)
    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;
    }
    /**
    * 測(cè)量文本的寬度
    * @param $source 需要測(cè)量文本寬度的 jquery 對(duì)象
    */
    function measureTxtWidth($source)
    {
    var txtWidth = null;
    var text = $source.text();
    var $span = $("<span>" + text + "</span>").appendTo("body");
    $span.css({whiteSpace: "nowrap", font: $source.css("font")});
    txtWidth = $span.width();
    $span.remove();
    return txtWidth;
    }
    使用新浪開(kāi)放 api 獲取當(dāng)前位置:
    返回的數(shù)據(jù)格式如下:
    {
    "ret": 1,
    "start": "180.149.132.0",
    "end": "180.149.159.255",
    "country": "中國(guó)", // 國(guó)家
    "province": "北京", // 省份
    "city": "北京", // 城市
    "district": "",
    "isp": "電信", // 運(yùn)營(yíng)商
    "type": "企業(yè)",
    "desc": "中國(guó)電信集團(tuán)電信"
    }
    /**
    * 獲取地理定位信息,使用騰訊地圖進(jìn)行定位
    * @param getSuccFunc 獲取成功的回調(diào)函數(shù)回調(diào)函數(shù)
    */
    function getGeolocation(getSuccFunc)
    {
    var succResult = {}; // 請(qǐng)求位置成功的結(jié)果
    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; // 經(jīng)度
    }
    }
    if(getSuccFunc)
    {
    getSuccFunc(succResult);
    }
    };
    geolocation.position(positionParam, positionCallback);
    }
    /**
    * 將數(shù)字轉(zhuǎn)換成字符串的通用方法
    * 說(shuō)明:直接使用 toFixed 方法會(huì)進(jìn)行四舍五入,因此寫(xiě)一個(gè)將數(shù)字轉(zhuǎn)換為指定小數(shù)位數(shù)字符串的方法
    * @param sourceData 源數(shù)據(jù)
    * @param decimalLen 小數(shù)的位數(shù)
    */
    function numberToString(sourceData, decimalLen)
    {
    decimalLen = typeof(decimalLen) == undefined ? 0 : decimalLen;
    var result = sourceData + "";
    var integerStr = null; // 整數(shù)部分
    var decimalStr = null; // 小數(shù)部分
    if(result.indexOf(".") == -1)
    {
    result = Number(result).toFixed(decimalLen);
    }
    else
    {
    integerStr = result.substring(0, result.indexOf(".")); // 整數(shù)部分
    decimalStr = /.d+/.exec(result); // 小數(shù)部分
    decimalStr = Number(decimalStr);
    decimalStr = decimalStr.toPrecision(decimalLen).substr(0, decimalLen + 2);
    result = integerStr + decimalStr.substr(1);
    }
    return result;
    }
    /**
    * 根據(jù)電話號(hào)碼獲取位置信息,使用拍拍開(kāi)放 api
    * @param phoneNo 電話號(hào)碼
    * @param succFunc 調(diào)用接口成功的回調(diào)函數(shù)
    * 回調(diào)函數(shù)入?yún)⒌臄?shù)據(jù)格式如下:
    * {
    "mobile": "18576648552",
    "province": "廣東",
    "isp": "中國(guó)聯(lián)通",
    "stock": "1",
    "amount": "10000",
    "maxprice": "0",
    "minprice": "0",
    "cityname": "深圳"
    }
    */
    function getPositionByPhoneNo(phoneNo, succFunc)
    {
    $.ajax({
    url: "",
    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("根據(jù)手機(jī)號(hào)獲取歸屬地服務(wù)失敗【前端】");
    }
    });
    }