vue项目常用方法封装,持续更新中。。。

vue项目中可以直接使用

1、常用工具类untils.js中

/*
* 验证手机号是否合格
* true--说明合格
*/
export function isPhone(phoneStr){
    let myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
    if (!myreg.test(phoneStr)) {
        return false;
    } else {
        return true;
    }
}

/*
* 验证身份证号是否合格
* true--说明合格
*/
export function isIdCard(idCardStr) {
  let idcardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/
  if (idcardReg.test(idCardStr)) {
    return true
  } else {
    return false
  }
}

/**
* 验证车牌号是否合格
* true--说明合格
*/
export function isVehicleNumber(vehicleNumber) {
    let xreg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
    let creg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
    if(vehicleNumber.length == 7){
        return creg.test(vehicleNumber);
    } else if(vehicleNumber.length == 8){
        return xreg.test(vehicleNumber);
    } else{
        return false;
    }
}

/*
* 验证字符串是否为空(也不能为纯空格)
* true--说明为空, false--说明不为空
*/
export function isEmptyString(string) {
    if (string == undefined
        || typeof string == "undefined"
        || !string
        || string == null
        || string == ''
        || /^\s+$/gi.test(string) ) {
        return true;
    }else{
        return false;
    }
}

/*
* 生日转为年龄(精确到月份)
*/
export function birsdayToAge(birsday) {
    let aDate = new Date();
    let thisYear = aDate.getFullYear();
    let bDate = new Date(birsday);
    let brith = bDate.getFullYear();
    let age = thisYear - brith;
    if(aDate.getMonth()==bDate.getMonth()){
        if(aDate.getDate()<bDate.getDate()){
            age = age -1;
        }
    }else{
        if(aDate.getMonth()<bDate.getMonth()){
            age = age -1;
        }
    }
    return age
}

/*
* 是否空数组
*/
export function isArrayEmpty(val) {
    if(val && val instanceof Array && val.length>0){
        return false;
    }else{
        return true;
    }
}

/*
* 获取url参数字符串
* 没有返回null
*/
export function getQueryString(name) {
  let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
  let r = window.location.search.substr(1).match(reg)
  if (r != null) {
    return unescape(r[2])
  }
  return null
}

/*
* 递归深拷贝
*/
export function deepCopy(obj) {
    let result = Array.isArray(obj) ? [] : {};
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            if(typeof obj[key] === 'object' && obj[key] !== null) {
                result[key] = deepCopy(obj[key]);
            } else {
                result[key] = obj[key];
            }
        }
    }
    return result;
}

/**
* 去除参数空数据(用于向后台传递参数的时候)
* @param {Object} obj [参数对象]
*/
export function filterEmptyData(obj){
  for (let prop in obj) {
    obj[prop] === '' ? delete obj[prop] : obj[prop]
  }
  return obj;
}

/**
* @desc  函数防抖,用于多次触发,只执行 规定时间后再执行有且只有一次触发 的情况。便于优化性能
* @param {function} func - 需要使用函数防抖的被执行的函数。必传
* @param {Number} wait - 多少毫秒之内触发,只执行第一次,默认1000ms。可以不传
*/
export function debounce(func, wait) {
  let timeout = null
  wait = wait || 1000
  return function() {
    let context = this
    let args = arguments
    if (timeout) clearTimeout(timeout)
    let callNow = !timeout
    timeout = setTimeout(() => {
      timeout = null
    }, wait)
    if (callNow) func.apply(context, args)
  }
}

2、本地存储工具类storageUntils.js

/**
* 设置本地localStorage
* @name {String} 数据对象的KEY
* @data {all} 对应key的数据
*/
export function setStorage(name, data) {
  let storage = window.localStorage;
  storage.setItem(name, JSON.stringify(data));
}

/**
* 拿到本地localStorage
* @name {String} 数据对象的KEY
*/
export function getStorage(name) {
  let storage = window.localStorage;
  let data = JSON.parse(storage.getItem(name));
  return data;
}
/**
* 设置本地sessionStorage
* @name {String} 数据对象的KEY
* @data {all} 对应key的数据
*/
export function setSessionStorage(name, data) {
  let storage = window.sessionStorage;
  storage.setItem(name, JSON.stringify(data));
}

/**
* 拿到本地sessionStorage
* @name {String} 数据对象的KEY
*/
export function getSessionStorage(name) {
  let storage = window.sessionStorage;
  let data = JSON.parse(storage.getItem(name));
  return data;
}

项目中常用到的一些工具方法,持续更新中。。。

原文地址:https://www.cnblogs.com/sgs123/p/12200454.html

时间: 2024-08-07 20:20:59

vue项目常用方法封装,持续更新中。。。的相关文章

2018年阿里巴巴重要开源项目汇总(持续更新中)

摘要: 云栖社区特在2018年年末,将阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助. 开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来.阿里巴巴各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题. 云栖社区特在2018年年末,将阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助.(以下项目排名不

多功能万能模态框插件,项目实用,持续更新中...

附github地址 https://github.com/pomelott/jquery-plug-in 模态框(modelBox) 使用方法 1.引入css文件(建议复制粘贴至项目css文件中) 2.引入js文件(建议使用发布的压缩版,需引入jquery) 3.创建模态框对象,并传入参数. 参数说明 num:0 *必填 模态框索引:自定义整形数字(创建多个模态框时用以区分) cover:true 是否显示遮罩层:ture(有),false(没有),默认为true pos:"center&quo

golang开发常用开源项目工具(持续更新中)

本人在日常golang项目开发中,用到了一些第三方开源库,大多都是优秀的开源项目,源码值得认真阅读研究.在此记录用到的一些库: 解析配置文件 go-ini https://github.com/go-ini/ini 原文地址:http://blog.51cto.com/xwandrew/2104307

【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包含:数组类.浏览器类.日期类.函数类.数学类.媒体类.节点类.对象类.字符串类.类型检测类.正则表达式类等内容. 使用方法 1. 引入Bable transpiler以保证支持ES6 <script type="javascript/text" src="./browser

Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...)

前言 "条条大路通罗马."工作中,实现某个需求的方式往往不是唯一的,这些不同实现方式不仅表现在代码质量上,还影响着我们的工作效率.就像,在 Android 系统中,总有那么一些鲜为人知的 API 能够减少我们很多零碎的工作量.于是,就想凭着一些经验,整理一些常用的,找个地方归纳总结,也供日后翻阅. getResources().getIdentifier(String name, String defType, String defPackage) 根据资源名称获取资源 id.正常情况

Android 自己收集的开源项目集合(持续更新 2018.2.5)

2017.12.21 1.仿QQ说说发图片选择框架 https://github.com/yaozs/ImageShowPicker 2.炫酷开屏动画框架 https://github.com/JoshuaRogue/FancyView 3.防京东,支付宝密码键盘和密码输入框 https://github.com/GitPhoenix/Keyboard 4.根据银行卡号 获取 银行卡类型.银行名称和银行编码 自动格式化银行卡号.手机号.身份证号输入的工具类 https://github.com/

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)

演示地址 帐号:admin 密码:admin123 请不要删除用户避免他人无法体验(文章中已经附带源码,源码开放到17讲下载) 快捷地址(QQ群37509873也有相应的下载):   第2讲源码下载  密码:wg0i 最新代码生成器+17讲源码下载 密码:n2ji SwfUpload在MVC4下多文件上传 密码:0ntz 也可以有偿获取一份最新源码联系QQ:729994997价格500 -------------------------------------------------------

Xcode编译异常和警告汇总(持续更新中)

1.Method definition for 'xxx' not found xxx的方法没有实现 出现原因.h声明了xxx方法但是.m没有实现xxx方法 解决方法:在类的.m文件实现xxx方法 2. Instance variable ‘xxx' accessed in class method  在类方法中访问了'xxx’实例变量 出现原因:在类方法中使用了实例变量 解决方法:如果真得需要在类方法中使用某个变量,可以把这个变量定义成全局变量,而不要实例变量,如在类方法外面定义变量(就是定义

nodejs学习(持续更新中)

nodejs和express的安装什么的,网上基本都有现成的了,这里有点说下, 在较早点的版本(如3.5.0) npm install -g [email protected] 后,可以直接使用 express helloWorld创建工程, 但最新express4.0版本中将命令工具分家出来了(项目地址:https://github.com/expressjs/generator),所以我们还需要安装一个命令工具,命令如下:npm install -g express-generator ##