读万卷书行万里路

js常用代码整理

发布时间:2017/3/19 11:36:5
    全文约3.7k
    预计需要20分钟

1. PC - js

  • 返回指定范围的随机数(m-n之间)的公式

    Math.random()*(n-m)+m
  • return false

  • return false

    // event.preventDefault()会阻挡预设要发生的事件.
    // event.stopPropagation()会阻挡发生冒泡事件.
    // 而return false则是前面两者的事情他都会做:
    // 他会做event.preventDefault();
    // 他会做event.stopPropagation();
    // 停止callback function的执行并且立即return回来
  • 防止被Iframe嵌套

    if(top != self){
      location.href = ”about:blank”;
    }
  • 两种图片lazy加载的方式
    第一个By JS中级交流群 成都-猎巫 第二个By 上海-zenki

    // @description 准备为图片预加载使用的插件
    // 使用的图片容器css类名为lazy-load-wrap
    // 图片真实地址为data-lazy-src
    // 当lazy-load-wrap容器进入视口,则开始替换容器内所有需要延迟加载的图片路径,并更改容器的加载状态
    //第一种方法
    $.fn.compassLazyLoad=function(){
      var _HEIGHT=window.innerHeight,
      _lazyLoadWrap=$('.lazy-load-wrap');
    
      var methods={
          setOffsetTop:function(){
              $.each(_lazyLoadWrap,function(i,n){
                  $(n).attr({
                      'top':n.offsetTop-_HEIGHT,
                      'status':'wait'
                  });
              })
          },
          isShow:function(){
              var _scrollTop=$(window).scrollTop;
              //利用image容器判断是否进入视口,而非image本身
              $.each(_lazyLoadWrap,function(){
                  var _that=$(this);
                  if (_that.attr('status')==='done') {
                      return;
                  };
                  if (_that.attr('top')<=_scrollTop) &#123;
                      _that.find('img[data-lazy-src]').each(function(i,n)&#123;
                          n.src=$(n).data('lazy-src');
                      &#125;);
                      _that.attr('status','done');
                  &#125;;
              &#125;)
          &#125;,
          scroll:function()&#123;
              $(window).on('scroll',function()&#123;
                  methods.isShow();
              &#125;);
          &#125;,
          init:function()&#123;
              methods.setOffsetTop();
              methods.isShow();
              methods.scroll();
          &#125;
      &#125;;
      methods.init();
    

}

//第二种方法

var exist=(function($){
var timer=null,
temp=[].slice.call($(‘.container’));
ret={};

for(var i=0,len=temp.length-1;i<=len;i++){
    ret[i]=temp[i];
}
var isExist=function(winTop,winEnd){
    for(var i in ret){
        console.log(ret);
        var item=ret[i],
        eleTop=item.offsetTop,
        eleEnd=eleTop+item.offsetHeight;

        if((eleTop>winTop&&eleTop<=winEnd)||(eleEnd>winTop&&eleEnd<=winEnd)){
            $(item).css('background','none');
            new Tab($(item).attr('id'),data).init;
            delete ret[i];
        }
    }
}
return {
    timer:timer;
    isExist:isExist;
};

})($);

//第三种方法
Zepto(function ($) {
var swiper = new Swiper(‘.swiper-container’, {
pagination: ‘.swiper-pagination’,
paginationClickable: true,
autoplay: 3000,
loop: true,
autoplayDisableOnInteraction: false
});
(function lazyLoad() {
var imgs = $(“.lazyLoad”);
var src = ‘’;
$.each(imgs, function (index, item) {
src = $(item).attr(‘data-src’);
$(item).attr(‘src’, src);
});
})();
});
$(function () {
var lazyLoadTimerId = null;
/// 智能加载事件
$(window).bind(“scroll”, function () {
clearTimeout(lazyLoadTimerId);
lazyLoadTimerId = setTimeout(function () {
// 延迟加载所有图片
var isHttp = (location.protocol === “http:”);
$(“#ym_images img”).each(function () {
var self = $(this);
if (self.filter(“:above-the-fold”).length > 0) {
var originUrl = self.attr(“data-original”);
self.attr(“src”, originUrl);
}
});
}, 500);
});
});


- 某年某月的1号为星期几
```javascript
var weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
weekday[new Date(2015, 9, 1).getDay()];    //2015年10月1号

2. Mobile - js

  • js 判断IOS, 安卓
    var u = navigator.userAgent, app = navigator.appVersion;
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
    var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    alert('是否是Android:'+isAndroid);
    alert('是否是iOS:'+isiOS);

3. 微信 weixin

  • UserAgent 判断微信客户端

    // Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12F70 MicroMessenger/6.1.5 NetType/WIFI
    function isWechat() &#123;  
      var ua = navigator.userAgent.toLowerCase();
      return /micromessenger/i.test(ua) || /windows phone/i.test(ua);
    &#125;
  • JS接口安全域名不填写,分享onMenuShareAppMessage直接会取默认值。

    // 分享onMenuShareAppMessage直接会取默认值
  • 关闭当前页面

    WeixinJSBridge.call('closeWindow');
  • 支付接口方法调用必须在addevent里边调用

    document.addEventListener('WeixinJSBridgeReady', function onBridgeReady()&#123;
      that.initOrder();
    &#125;, false);
  • 支付接口方法调用必须在

    WeixinJSBridge.invoke('getBrandWCPayRequest', d, function(res)&#123;
      if(res.err_msg == "get_brand_wcpay_request:ok")&#123;
          // alert("支付成功");
          // union.release(d.orderId);
          resetUrl();
          paySuccess('home', d.orderId);
      &#125; else &#123;
          cancelOrder(d.orderId);
          // alert(res.err_msg);
      &#125;
      loading.hide();
    &#125;);
  • 瀑布流无限加载实例

    // be dependent on jquery & jquery.infinitescroll.min.js
    // insert this '<div id="more"><a href="api?page="></a></div>' to your page.html
    (function($)&#123;
    $(function()&#123;
        var $container = $('.list-wrap-gd');
        function layOutCallBack() &#123;
            $container.imagesLoaded(function()&#123;
                $container.masonry(&#123;
                    itemSelector: '.item-bar',
                    gutter: 10
                &#125;);
            &#125;);
            $container.imagesLoaded().progress( function() &#123;
                $container.masonry('layout');
            &#125;);
        &#125;
    
        layOutCallBack();
    
        $container.infinitescroll(&#123;
            navSelector : "#more",
            nextSelector : "#more a",
            itemSelector : ".item-bar",
            pixelsFromNavToBottom: 300,
            loading:&#123;
                img: "/images/masonry_loading.gif",
                msgText: ' ',
                finishedMsg: "<em>已经到最后一页</em>",
                finished: function()&#123;
                    $("#more").remove();
                    $("#infscr-loading").hide();
                &#125;
            &#125;,
            errorCallback:function()&#123;
                $(window).unbind('.infscr');
            &#125;,
            pathParse: function (path, nextPage) &#123;
                var query = "";
                var keyword=$("#search_keyword").val();
                var cat_id=$("#cat_id").val();
                var brand_id=$("#brand_id").val();
                var country_id = $("#country_id").val();
                query = query + "&namekeyword="+keyword;
                query = query +"&cat_id="+cat_id
                query = query + "&brand_id=" + brand_id;
                query = query + "&country_id=" + country_id;
                path = [path,query];
                return path;
            &#125;
        &#125;,
    
        function(newElements) &#123;
            var $newElems = $( newElements ).css(&#123; opacity: 0 &#125;);
            $newElems.imagesLoaded(function()&#123;
                $newElems.animate(&#123; opacity: 1 &#125;);
                $container.masonry( 'appended', $newElems, true );
                layOutCallBack();
            &#125;);
        &#125;);
    &#125;);
    &#125;)(jQuery);
  • iOS,Safari浏览器,input等表单focus后fixed元素错位问题

    if( /iPhone|iPod|iPad/i.test(navigator.userAgent) ) &#123;
    $(document).on('focus', 'input, textarea', function()
    &#123;
       $('header').css("position", 'absolute');
       $('footer').css("position", 'absolute');
    
    &#125;);
    
    $(document).on('blur', 'input, textarea', function()
    &#123;
         $('header').css("position", 'fixed');
         $('footer').css("position", 'fixed');
    
    &#125;);
    &#125;
    

- 得到地理位置
```javascript
function getLocation(callback){
  if(navigator.geolocation){
      navigator.geolocation.getCurrentPosition(
              function(p){
                  callback(p.coords.latitude, p.coords.longitude);
              },
              function(e){
                  var msg = e.code + "\n" + e.message;
              }
      );
  }
}
  • rem计算适配

    (function(doc, win)&#123;
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function()&#123;
            var clientWidth = docEl.clientWidth;
            if(!clientWidth) return;
            docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
        &#125;;
    
    if(!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
    &#125;)(document, window);
  • 另外一种rem方案

    var dpr, rem, scale;
    var docEl = document.documentElement;
    var fontEl = document.createElement('style');
    var metaEl = document.querySelector('meta[name="viewport"]');
    

dpr = window.devicePixelRatio || 1;
rem = docEl.clientWidth * 2 / 10;
scale = 1 / dpr;

// 设置viewport,进行缩放,达到高清效果
metaEl.setAttribute(‘content’, ‘width=’ + dpr * docEl.clientWidth + ‘,initial-scale=’ + scale + ‘,maximum-scale=’ + scale + ‘, minimum-scale=’ + scale + ‘,user-scalable=no’);

// 设置data-dpr属性,留作的css hack之用
docEl.setAttribute(‘data-dpr’, dpr);

// 动态写入样式
docEl.firstElementChild.appendChild(fontEl);
fontEl.innerHTML = ‘html{font-size:’ + rem + ‘px!important;}’;

// 给js调用的,某一dpr下rem和px之间的转换函数
window.rem2px = function(v) {
v = parseFloat(v);
return v * rem;
};
window.px2rem = function(v) {
v = parseFloat(v);
return v / rem;
};

window.dpr = dpr;
window.rem = rem;


- 获取js所在路径
```js
function getJsDir (src) {
    var script = null;

    if (src) {
        script = [].filter.call(document.scripts, function (v) {
            return v.src.indexOf(src) !== -1;
        })[0];
    } else {
        script = document.scripts[document.scripts.length - 1];
    }

    return script ? script.src.substr(0, script.src.lastIndexOf('/')) : script;
}
  • 从全局捕获错误

    window.onerror = function (errMsg, scriptURI, lineNumber, columnNumber, errorObj) &#123;
      setTimeout(function () &#123;
          var rst = &#123;
              "错误信息:": errMsg,
              "出错文件:": scriptURI,
              "出错行号:": lineNumber,
              "出错列号:": columnNumber,
              "错误详情:": errorObj
          &#125;;
    
          alert(JSON.stringify(rst, null, 10));
      &#125;);
    &#125;;
  • 如何通过 js 修改微信浏览器的title?

    var $body = $('body');
    document.title = 'title'; // hack在微信等webview中无法修改document.title的情况    
    var $iframe = $('<iframe src="/favicon.ico"></iframe>').on('load', function()&#123;
      setTimeout(function()&#123;
          $iframe.off('load').remove()
      &#125;, 0)
    &#125;).appendTo($body)

1. 常用方法 - js

  • 字符串长度截取

    function cutstr(str, len) &#123;
      var temp,
          icount = 0,
          patrn = /[^\x00-\xff]/,
          strre = "";
      for (var i = 0; i < str.length; i++) &#123;
          if (icount < len - 1) &#123;
              temp = str.substr(i, 1);
                  if (patrn.exec(temp) == null) &#123;
                     icount = icount + 1
              &#125; else &#123;
                  icount = icount + 2
              &#125;
              strre += temp
              &#125; else &#123;
              break;
          &#125;
      &#125;
      return strre + "..."
    &#125;
  • 替换全部

    String.prototype.replaceAll = function(s1, s2) &#123;
      return this.replace(new RegExp(s1, "gm"), s2)
    &#125;
  • 清除空格

    String.prototype.trim = function() &#123;
      var reExtraSpace = /^\s*(.*?)\s+$/;
      return this.replace(reExtraSpace, "$1")
    &#125;
  • 清除左空格/右空格

    function ltrim(s)&#123; return s.replace( /^(\s*| *)/, ""); &#125;
    function rtrim(s)&#123; return s.replace( /(\s*| *)$/, ""); &#125;
  • 判断是否以某个字符串开头

    String.prototype.startWith = function (s) &#123;
      return this.indexOf(s) == 0
    &#125;
  • 判断是否以某个字符串结束

    String.prototype.endWith = function (s) &#123;
      var d = this.length - s.length;
      return (d >= 0 && this.lastIndexOf(s) == d)
    &#125;
  • 转义html标签

    function HtmlEncode(text) &#123;
      return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')
    &#125;
  • 时间日期格式转换

    Date.prototype.Format = function(formatStr) &#123;
      var str = formatStr;
      var Week = ['日', '一', '二', '三', '四', '五', '六'];
      str = str.replace(/yyyy|YYYY/, this.getFullYear());
      str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
      str = str.replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1));
      str = str.replace(/M/g, (this.getMonth() + 1));
      str = str.replace(/w|W/g, Week[this.getDay()]);
      str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
      str = str.replace(/d|D/g, this.getDate());
      str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
      str = str.replace(/h|H/g, this.getHours());
      str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
      str = str.replace(/m/g, this.getMinutes());
      str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
      str = str.replace(/s|S/g, this.getSeconds());
      return str
    &#125;
  • 判断是否为数字类型

    function isDigit(value) &#123;
      var patrn = /^[0-9]*$/;
      if (patrn.exec(value) == null || value == "") &#123;
          return false
      &#125; else &#123;
          return true
      &#125;
    &#125;
  • 设置cookie值

    function setCookie(name, value, Hours) &#123;
      var d = new Date();
      var offset = 8;
      var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
      var nd = utc + (3600000 * offset);
      var exp = new Date(nd);
      exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
      document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
    &#125;
  • 获取cookie值

    function getCookie(name) &#123;
      var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
      if (arr != null) return unescape(arr[2]);
      return null
    &#125;
  • 加载样式文件表

    function LoadStyle(url) &#123;
      try &#123;
          document.createStyleSheet(url)
      &#125; catch(e) &#123;
          var cssLink = document.createElement('link');
          cssLink.rel = 'stylesheet';
          cssLink.type = 'text/css';
          cssLink.href = url;
          var head = document.getElementsByTagName('head')[0];
          head.appendChild(cssLink)
      &#125;
    &#125;
  • 返回脚本内容

    function evalscript(s) &#123;
      if(s.indexOf('<script') == -1) return s;
      var p = /<script[^\>]*?>([^\x00]*?)<\/script>/ig;
      var arr = [];
      while(arr = p.exec(s)) &#123;
          var p1 = /<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i;
          var arr1 = [];
          arr1 = p1.exec(arr[0]);
          if(arr1) &#123;
              appendscript(arr1[1], '', arr1[2], arr1[3]);
          &#125; else &#123;
              p1 = /<script(.*?)>([^\x00]+?)<\/script>/i;
              arr1 = p1.exec(arr[0]);
              appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1);
          &#125;
      &#125;
      return s;
    &#125;
  • 清除脚本内容

    function stripscript(s) &#123;
      return s.replace(/<script.*?>.*?<\/script>/ig, '');
    &#125;
  • 动态加载脚本文件

    function appendscript(src, text, reload, charset) &#123;
      var id = hash(src + text);
      if(!reload && in_array(id, evalscripts)) return;
      if(reload && $(id)) &#123;
          $(id).parentNode.removeChild($(id));
      &#125;
    
      evalscripts.push(id);
      var scriptNode = document.createElement("script");
      scriptNode.type = "text/javascript";
      scriptNode.id = id;
      scriptNode.charset = charset ? charset : (BROWSER.firefox ? document.characterSet : document.charset);
      try &#123;
          if(src) &#123;
              scriptNode.src = src;
              scriptNode.onloadDone = false;
              scriptNode.onload = function () &#123;
                  scriptNode.onloadDone = true;
                  JSLOADED[src] = 1;
               &#125;;
               scriptNode.onreadystatechange = function () &#123;
                   if((scriptNode.readyState == 'loaded' || scriptNode.readyState == 'complete') && !scriptNode.onloadDone) &#123;
                      scriptNode.onloadDone = true;
                      JSLOADED[src] = 1;
                  &#125;
               &#125;;
          &#125; else if(text)&#123;
              scriptNode.text = text;
          &#125;
          document.getElementsByTagName('head')[0].appendChild(scriptNode);
      &#125; catch(e) &#123;&#125;
    &#125;
  • 返回按ID检索的元素对象

    function $(id) &#123;
      return !id ? null : document.getElementById(id);
    &#125;
  • 检验URL链接是否有效

    function getUrlState(URL)&#123;
      var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
      xmlhttp.Open("GET",URL, false);  
      try&#123;  
              xmlhttp.Send();
      &#125;catch(e)&#123;
      &#125;finally&#123;
          var result = xmlhttp.responseText;
          if(result)&#123;
              if(xmlhttp.Status==200)&#123;
                  return(true);
               &#125;else&#123;
                     return(false);
               &#125;
           &#125;else&#123;
               return(false);
           &#125;
      &#125;
    &#125;
  • 获取当前路径

    var currentPageUrl = "";
    if (typeof this.href === "undefined") &#123;
      currentPageUrl = document.location.toString().toLowerCase();
    &#125;else &#123;
      currentPageUrl = this.href.toString().toLowerCase();
    &#125;
  • 获取页面高度

    function getPageHeight()&#123;
      var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat"
                      ? a
                      : g.documentElement;
      return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);
    &#125;
  • 获取页面可视宽度

    function getPageViewWidth()&#123;
      var d = document, a = d.compatMode == "BackCompat" ?
                            d.body: d.documentElement;
      return a.clientWidth;
    &#125;
  • 获取页面宽度

    function getPageWidth()&#123;
      var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat"?
                            a: g.documentElement;
      return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);
    &#125;
  • 随机数时间戳

    function uniqueId()&#123;
      var a=Math.random,b=parseInt;
      return Number(new Date()).toString()+b(10*a())+b(10*a())+b(10*a());
    &#125;
  • 日期格式化函数

    Date.prototype.format = function(format)&#123;
      var o = &#123;
          "M+" : this.getMonth()+1, //month
          "d+" : this.getDate(),    //day
          "h+" : this.getHours(),   //hour
          "m+" : this.getMinutes(), //minute
          "s+" : this.getSeconds(), //second
          "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
          "S" : this.getMilliseconds() //millisecond
      &#125;;
      if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
    (this.getFullYear()+"").substr(4 - RegExp.$1.length));
      for(var k in o)&#123;
          if(new RegExp("("+ k +")").test(format))
              format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length));
      &#125;
      return format;
    &#125;
    //调用
    //new Date().format("yyyy-MM-dd hh:mm:ss");
  • 返回顶部的通用方法

    function backTop(btnId) &#123;
      var btn = document.getElementById(btnId);
      var d = document.documentElement;
      var b = document.body;
      window.onscroll = set;
      btn.style.display = "none";
      btn.onclick = function() &#123;
          btn.style.display = "none";
          window.onscroll = null;
          this.timer = setInterval(function() &#123;
              d.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
              b.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
              if ((d.scrollTop + b.scrollTop) == 0) clearInterval(btn.timer, window.onscroll = set);
              &#125;, 10);
      &#125;;
      function set() &#123;
          btn.style.display = (d.scrollTop + b.scrollTop > 100) ? 'block': "none"
      &#125;
    &#125;;
    backTop('goTop');
  • 获得URL中GET参数值

    // 用法:如果地址是 test.htm?t1=1&t2=2&t3=3, 那么能取得:GET["t1"], GET["t2"], GET["t3"]
    function get_get()&#123;
      querystr = window.location.href.split("?")
      if(querystr[1])&#123;
          GETs = querystr[1].split("&");
          GET = [];
          for(i=0;i<GETs.length;i++)&#123;
                tmp_arr = GETs.split("=")
                key=tmp_arr[0]
                GET[key] = tmp_arr[1]
          &#125;
      &#125;
      return querystr[1];
    &#125;
  • 数组去重

    String.prototype.unique=function()&#123;
      var x=this.split(/[\r\n]+/);
      var y='';
      for(var i=0;i<x.length;i++)&#123;
          if(!new RegExp("^"+x.replace(/([^\w])/ig,"\\$1")+"$","igm").test(y))&#123;
              y+=x+"\r\n"
          &#125;
      &#125;
      return y
    &#125;;
  • 按字典顺序,对每行进行数组排序

    function SetSort()&#123;
      var text=K1.value.split(/[\r\n]/).sort().join("\r\n");//顺序
      var test=K1.value.split(/[\r\n]/).sort().reverse().join("\r\n");//反序
      K1.value=K1.value!=text?text:test;
    &#125;
  • 字符串反序输出

    function IsReverse(text)&#123;
      return text.split('').reverse().join('');
    &#125;
  • 金额大写转换函数

    //格式转换
    function transform(tranvalue) &#123;
      try &#123;
          var i = 1;
          var dw2 = new Array("", "万", "亿"); //大单位
          var dw1 = new Array("拾", "佰", "仟"); //小单位
          var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
          //以下是小写转换成大写显示在合计大写的文本框中     
          //分离整数与小数
          var source = splits(tranvalue);
          var num = source[0];
          var dig = source[1];
          //转换整数部分
          var k1 = 0; //计小单位
          var k2 = 0; //计大单位
          var sum = 0;
          var str = "";
          var len = source[0].length; //整数的长度
          for (i = 1; i <= len; i++) &#123;
                var n = source[0].charAt(len - i); //取得某个位数上的数字
                var bn = 0;
                if (len - i - 1 >= 0) &#123;
                  bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
                &#125;
                sum = sum + Number(n);
                if (sum != 0) &#123;
                  str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
                  if (n == '0') sum = 0;
                &#125;
                if (len - i - 1 >= 0) &#123; //在数字范围内
                  if (k1 != 3) &#123; //加小单位
                        if (bn != 0) &#123;
                          str = dw1[k1].concat(str);
                        &#125;
                        k1++;
                  &#125; else &#123; //不加小单位,加大单位
                        k1 = 0;
                        var temp = str.charAt(0);
                        if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
                        str = str.substr(1, str.length - 1);
                        str = dw2[k2].concat(str);
                        sum = 0;
                  &#125;
                &#125;
                if (k1 == 3)&#123; //小单位到千则大单位进一
                  k2++;
                &#125;
          &#125;
          //转换小数部分
          var strdig = "";
          if (dig != "") &#123;
                var n = dig.charAt(0);
                if (n != 0) &#123;
                  strdig += dw[Number(n)] + "角"; //加数字
                &#125;
                var n = dig.charAt(1);
                if (n != 0) &#123;
                  strdig += dw[Number(n)] + "分"; //加数字
                &#125;
          &#125;
          str += "元" + strdig;
      &#125; catch(e) &#123;
          return "0元";
      &#125;
      return str;
    &#125;
    //拆分整数与小数
    function splits(tranvalue) &#123;
      var value = new Array('', '');
      temp = tranvalue.split(".");
      for (var i = 0; i < temp.length; i++) &#123;
          value = temp;
      &#125;
      return value;
    &#125;
目录
文章作者:CavinHuang
文章链接:http://blog.zukmb.cn/posts/a5ad9984/
版权声明:转载请注明来自CavinHuangのBlog
百度前端学院js系列-第二天详解
javascript日期操作函数