常见的工具类函数

工具类函数就是工具,哪儿需要搬哪儿。

 /**
  * 将URL中的参数转换为对象
  * @author ZhangLai
  * @create 2017-12-11
  * @param  {String}   url [请求的URL地址]
  * @return {Object}       [将请求的参数部分转换为一个对象]
  */
 export function param2Obj( url ) {
   const search = url.split('?')[1]
   if (!search) {
     return {}
   }
   return JSON.parse('{"' + decodeURIComponent(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') + '"}')
 }

 /**
  * [纯数据对象的深度拷贝]
  * @author ZhangLai
  * @create 2017-12-11
  * @param  {Object}   obj [被复制的JSON对象]
  * @return {Object}       [深度复制后的JSON对象]
  */
 export function deepCopyDataObj( obj ){
  return JSON.parse( JSON.stringify( obj ));
 }

/**
 * [用于条件判断的断言方式,如果条件不成立,直接抛出异常。]
 * @author ZhangLai
 * @create 2017-12-12
 * @param  {Boolean}   condition [需要检测的条件]
 * @param  {String}    msg       [如果前面的条件不成立,抛出的异常的信息]
 * @return {Exception}           [条件不成立时,直接抛出异常]
 */
 export function assert (condition, msg) {
  if (!condition) throw new Error(`[ct] ${msg}`);
}
/**
 * [调试模式下的断言方式,仅在非生产环境下有效。]
 * @author ZhangLai
 * @create 2017-12-12
 * @param  {Boolean}   condition [需要检测的条件]
 * @param  {String}    msg       [如果前面的条件不成立,抛出的异常的信息]
 * @return {Exception}           [条件不成立时,直接抛出异常]
 */
 export function debugAssert( condition , msg ){
  if( process.env.NODE_ENV !== 'product' ){
    if (!condition) throw new Error(`[ct-debug] ${msg}`);
  }
 }

/**
 * [判断一个对象是否是一个promise对象]
 * @author ZhangLai
 * @create 2017-12-12
 * @param  {Object}   val [需要判断的对象]
 * @return {Boolean}      [如果某个对象是Promise,则返回true,否则,返回false]
 */
 export function isPromise (val) {
  return val && typeof val.then === 'function'
}

表单校验的功能函数定义

/* 是否是有效的用户名 */
export function isvalidUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

/* 合法uri*/
export function validateURL(textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return urlregex.test(textval)
}

/* 小写字母*/
export function validateLowerCase(str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

/* 大写字母*/
export function validateUpperCase(str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}

/* 大小写字母*/
export function validateAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

/** 邮箱地址 **/
export function validateEmail(email) {
  const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  return re.test(email)
}

还有48个实用的功能函数,这儿不列了,这儿有链接:
JS开发常用工具函数(上)
前端开发常用JS功能函数(下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值