Mtils,一套前端辅助代码集合,提供常用的数据校验、数据加密、扩展函数、便捷函数。

偶然发现的一个小的js插件,作者只在自己的git上写了怎么去使用这个插件,其实很简单的,一起了解下吧


资源来源

github地址: https://github.com/MisterChangRay/Mtils2
参考文档: https://misterchangray.github.io/Mtils2/

介绍

Mtils是一套前端代码集合,提供常用的数据校验、数据加密、扩展函数、便捷函数。
这是一个js的工具集合,封装了常见的表单校验,加密算法,原生函数扩展和一些其他的便捷方法。 详情参阅API文档

简介

提供身份证、银行卡、社会信用代码、邮箱、手机、座机、QQ、URL、IP等常见的数据格式校验

提供年龄计算、进制转换、cookie操作、金额格式化、时间格式化、数据类型判断、数组去重、获取拼音等常见便捷方法

提供base64、md5、sha1、sha256、随机数等常见数据安全算法
封装精度更高的计算函数,链式函数调用(类promise),数组对象获取,对象属性设置、对象数组查找

使用示例
  1. 引入Mtils.js
<!DOCTYPE html>
<html>
<head>
   <title>Mtils use test</title>
</head>
<body>
</body>
   <script type="text/javascript" src="Mtils.js"></script>
   <script type="text/javascript">
      //在这里调用你想用的方法吧
      ...
   </script>
</html>
  1. 在Js域内使用Mtils调用你想使用的函数,具体可以参阅API文档
<script type="text/javascript">
  //校验身份证
  if(Mtils.validation.isIdCard('510182199109217504')) {
    alert('此身份证有效');  
  } else {
    alert('此身份证无效');
  }

  //校验身份证是否为男性身份证
  if(Mtils.validation.isIdCard('510182199109217504', Mtils.constant.MAN)) {
    alert('此身份证为男性身份证');  
  } else {
    alert('此身份证无效');
  }

  //MD5加密密码
  var pw = Mtils.security.hex_md5('password');
  console.log(pw); // pw = "5f4dcc3b5aa765d61d8327deb882cf99"

  //生成UUID
  var uuid = Mtils.security.uuid();
  console.log(uuid); // uuid = "A0CBA9E7-EF50-41A8-B762-49C43C85121A"

  //生成介于1-99的随机数
  var randomNum = Mtils.security.randomBetween(1, 99)
  console.log(randomNum); // randomNum = 22

  //取汉字拼音
  var py = Mtils.utils.makePy('Mtils 真是个好工具');
  console.log(py);   // py = "Mtils ZhenShiGeHaoGongJu"

  //只取汉字首字母拼音
  var py = Mtils.utils.makePy('Mtils 真是个好工具', true);
  console.log(py);   // py = "Mtils ZSGHGJ"

  //将10进制的4转为2进制
  var result = Mtils.utils.decimalConversion(4, 10, 2);
  console.log(result);   // result = 100

  //数组去除重复元素
  var result = Mtils.extention.uniqueArray([1,2,3,4,4,3]);
  console.log(result);   // result = [1,2,3,4]

  //对象属性克隆, 从右到左;
  var a = {a:1}, b = {b:2}, c ={c:3}, d= {a:4};
  var result = Mtils.extention.extend(a,b,c,d); //将d,c,b这三个对象的属性复制到a对象中
  console.log(result);   // result = {a: 4, b: 2, c: 3}

  //格式化时间
  var result = Mtils.extention.formatDate(Mtils.now(), "yyyy-MM-dd");
  console.log(result);   // result = "2018-04-08"

  //便捷JS对象设置值
  var obj = {}; 
  Mtils.utils.setObjectPropertyVal(obj, 'a.b.c', 123, true);
  console.log(obj.a.b.c);   // obj.a.b.c = 123

  //便捷获取JS对象值,也可以用下面的方法获取值。原生obj.a.b.c,如果a为空,则可能报错,而获取方法不会报错且可以设置默认值
  var objVal = Mtils.utils.getObjectPropertyVal(obj, 'a.b.c');
  console.log(objVal);   // objVal = 123

  //根据对象属性来过滤数组, 这里从儿童列表中提取出所有姓张的
  var childrens = [{id:1, name:'张三'}, {id:2, name:'李四'}, {id:3, name:'张国立'}, {id:4, name:'赵武'}];
  var result = Mtils.utils.findInArray({"name":"张"}, childrens, true);
  console.log(result); // result = [{id:1, name:'张三'}, {id:3, name:'张国立'}]

  //也扩展了数组根据Key快速获取对象的方法
  var childrens = [{id:1, name:'张三'}, {id:2, name:'李四'}, {id:3, name:'张国立'}, {id:4, name:'赵武'}];
  var result = childrens.getById(1);
  console.log(result); // result = {id:1, name:'张三'}

  //排序数组中的所有对象;根据年龄倒序排序数组 childrens
  var childrens = [{age:12, name:'张三'}, {age:21, name:'李四'}, {age:31, name:'张国立'}, {age:41, name:'赵武'}];
  var result = childrens.sort(Mtils.extention.sortByObjectPropertie("age", false));
  console.log(result); // result =  [{age:41, name:'赵武'},{age:31, name:'张国立'},{age:21, name:'李四'},{age:12, name:'张三'}]

  //链式调用,解决回调的坑(这个演示的是伪代码)
  //该函数已经扩展到window对象,即也可以直接使用ChainCallManager()。示例中的三个ajax将会依次执行。
  Mtils.utils.ChainCallManager().then(function() {
    var self = this;
    ...
    $.ajax(url, function() {
      self.next();//当前函数执行完毕后调用下一个函数执行
    });
    ...
  }).then(function() {
    ...
    var self = this;
    $.ajax(url, function() {
      self.next();
    });
    ...
  }).then(function() {
    ...
    var self = this;
    $.ajax(url, function() {
      self.next();
    });
    ...
  }).start(); 

  //更多方法及语法,请结合API文档使用...
</script>

看图

window.Mtils
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352