函数封装

函数封装

1、js获取url传递的参数值

使用说明

函数只需要传入地址栏的键名就可以获取具体的参数。

//url参数处理
 function getQueryString(name) {        
 	var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');        
 	var r = window.location.search.substr(1).match(reg);        
 	if (r != null) {           
 		 return unescape(r[2]);        
 	}   
	return null;    
}

方式2 获取参数

//获取地址栏参数    
function getHash(key, url) {
        var hash;
                if (!!url) {
                            hash = url.replace(/^.*?[#](.+?)(?:\?.+)?$/, "$1");
                            hash = (hash == url) ? "" : hash;
                  } else {
                            hash = self.location.search;
                 }
        hash = "" + hash;        
        hash = hash.replace(/^[?#]/, '');        
        hash = "&" + hash;        
        var val = hash.match(new RegExp("[\&]" + key + "=([^\&]+)", "i"));       
        if (!val || val.length < 1) {
                    return null; 
            } else {            
            	return decodeURIComponent(val[1]);       
             }   
         };

使用实例

//获取url参数值    
var str=getQueryString('id')
//方式2
例如url=https://taobao.com.cn?caseNo=deggt
getHash('caseNo')
获取的值为  deggt

2、时间格式处理

使用说明

使用时将需要改变的日期作为参数传入函数,在函数中具体的格式可以根据需求进行拼接。在这里将当前时间作为参数传入。

//日期处理
sy.formatDate = function (date, format) {        
  if (typeof date === "string") {            
  var mts = date.match(/(\/Date\((\d+)\)\/)/);            
  if (mts && mts.length >= 3) {                
    date = parseInt(mts[2]);            
    }        
  }        
  date = new Date(date);        
  if (!date || date.toUTCString() == "Invalid Date") {            
    return "";        
  }
  var map = {            
    "M": date.getMonth() + 1, //月份            
    "d": date.getDate(), //日            
    "h": date.getHours(), //小时            
    "m": date.getMinutes(), //分            
    "s": date.getSeconds(), //秒            
    "q": Math.floor((date.getMonth() + 3) / 3), //季度            
    "S": date.getMilliseconds() //毫秒        
  };
  format = format.replace(/([yMdhmsqS])+/g, function (all, t) {
    var v = map[t];            
    if (v !== undefined) {                
      if (all.length > 1) {                    
        v = '0' + v;                    
        v = v.substr(v.length - 2);                
      }                
      return v;            
    } else if (t === 'y') {                
      return (date.getFullYear() + '').substr(4 - all.length);            
    }            
      return all;       
  });        
  return format;    
  };

使用实例

/获取当前时间    
 formatDate(new Date(), 'yyyy')//只有年份  yyyy-mm-dd  年-月-日  yyyy-mm-dd hh:mm:ss  年-月-日 时:分:秒
 
``

3、选项卡

使用说明

只需要调用函数,传入两个参数即可。第一个参数:列表项集合对象;第二个参数:列表项对应的内容项集合对象。

具体效果

在这里插入图片描述

具体实现

html结构
<div class="pages">
        <ul class="header">
            <li class="active">全部</li>
            <li>推荐</li>
            <li>球球大作战</li>
            <li>LOL</li>
        </ul>
        <ul class="content">
            <li class="active">1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
    </div>
index.js文件
// 点击事件切换
function switchTab(objNav,objCon){
    objNav.on('click',function(e){
        $(this).addClass('active').siblings().removeClass('active')
        console.log($(this).index())
        objCon.eq($(this).index()).addClass('active').siblings().removeClass('active')
    })
}
// 程序入口
$(function(){
    switchTab($('.header li'),$('.content li'))
})
css文件
/* 公共样式 */
html,body,ul,li,p,div{
    padding: 0;
    margin: 0;
}
html,body{
    min-height: 100% auto !important;
    height: 100%;
}
html{
    font-size: 13.333333vw;
}
ul,li{
    list-style: none;
}
/*具体样式*/
.pages{
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -ms-flex-direction: column;
    -webkit-flex-direction: column;
    flex-direction: column;
}
/* 头部tabBar */
.pages .header{
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-pack: distribute;
    -ms-flex-pack: distribute;
    -webkit-justify-content: space-around;
    justify-content: space-around;
    height: 0.88rem;
    font-size: 0.28rem;
    color:rgba(34,34,34,1);
}
.pages .header li{
    padding: 0 0.2rem;
    line-height: 0.88rem;
}
/* 选中tabBar样式 */
.pages .header .active{
    color: #000000;
    font-weight: bold;
    background: url('../images/line.png') no-repeat bottom center;
}
/* tabBar对应内容 */
.pages .content{
    -webkit-box-flex: 1;
    -ms-flex: 1;
    -webkit-flex: 1;
    flex: 1;
    position: relative;
}
.content li{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    min-height: 100%;
    height: 100 auto !important;
    display: none;
}
/* 显示内容切换 */
.content .active{
    display: block;
}

4.脱敏

//脱敏
function setData(firstLen,endLen,num){//firstLen 前部保留长度   endLen后步保留长度   num整个文本    
var num='LBEMDAEBXHZ071071'    
var first=num.substring(0,firstLen)    
var middle=num.substring(firstLen,num.length-firstLen)   
 var mid=''    
 for(var i=0;i<middle.length;i++){        
 mid+='*'    
 }    
 var end=num.substring(num.length-endLen)    
 return String(first)+String(mid)+String(end)
 }

5.小写金额转为大写

function toUpperCase (money) {
  //汉字的数字        
  var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');        
  //基本单位        
  var cnIntRadice = new Array('', '拾', '佰', '仟');        
  //对应整数部分扩展单位        
  var cnIntUnits = new Array('', '万', '亿', '兆');        
  //对应小数部分单位        
  var cnDecUnits = new Array('角', '分', '毫', '厘');        
  //整数金额时后面跟的字符        
  var cnInteger = '整';        
  //整型完以后的单位        
  var cnIntLast = '元';        
  //最大处理的数字        
  var maxNum = 999999999999999.9999;        
  //金额整数部分        
  var integerNum;        
  //金额小数部分        
  var decimalNum;        
  //输出的中文金额字符串        
  var chineseStr = '';        
  //分离金额后用的数组,预定义        
  var parts;        
  if (money == '') { return ''; }        
  money = parseFloat(money);        
  if (money >= maxNum) {            
  	//超出最大处理数字            
  	return '';        
  }        
  if (money == 0) {            
       chineseStr = cnNums[0] + cnIntLast + cnInteger;            
       return chineseStr;        
 }        
 //转换为字符串        
 money = money.toString();        
 if (money.indexOf('.') == -1) {
    integerNum = money;            
    decimalNum = '';        
 } else {            
    parts = money.split('.');            
    integerNum = parts[0];            
    decimalNum = parts[1].substr(0, 4);        
 }        
 //获取整型部分转换        
 if (parseInt(integerNum, 10) > 0) {            
    var zeroCount = 0;            
    var IntLen = integerNum.length;            
    for (var i = 0; i < IntLen; i++) {                
       var n = integerNum.substr(i, 1);                
       var p = IntLen - i - 1;                
       var q = p / 4;                
       var m = p % 4;                
       if (n == '0') {                    
         zeroCount++;                
       } else {                    
         if (zeroCount > 0) {                        
            chineseStr += cnNums[0];                    
         }                    
         //归零                    
         zeroCount = 0;                    
         chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
      }                
      if (m == 0 && zeroCount < 4) {                    
        chineseStr += cnIntUnits[q];                
      }            
    }            
      chineseStr += cnIntLast;        
  }        
  //小数部分        
  if (decimalNum != '') {            
    var decLen = decimalNum.length;            
    for (var i = 0; i < decLen; i++) {                
      var n = decimalNum.substr(i, 1);                
      if (n != '0') {                    
        chineseStr += cnNums[Number(n)] + cnDecUnits[i];                
      }            
    }        
  }        
  if (chineseStr == '') {            
    chineseStr += cnNums[0] + cnIntLast + cnInteger;        
  } else if (decimalNum == '') {            
    chineseStr += cnInteger;        
  }        
  return chineseStr;    
};

使用

toUpperCase(133440.23) 壹拾叁万叁仟肆佰肆拾元贰角叁分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值