移动端小功能杂记(二)

本文介绍了如何在JavaScript中解析URL的searchParams,从cookie中读取和写入数据的方法,以及根据数值正负设置字体颜色的技巧。此外,还详细讲解了如何将服务器返回的数字转换为更友好的显示值,包括默认值设定、特殊字典映射和符号添加等高级处理。

一. 获取Url中searchParams

getQueryParamsMap: function(searchUrlWithoutQuestionMark) {
  var result = {};
  var array = searchUrlWithoutQuestionMark.split('&');
  for (var i in array) {
    var keyValue = array[i];
    if (!keyValue || keyValue.length == 0) {
      continue;
    }
    var keyValueArray = keyValue.split('=');
    if (keyValueArray.length != 2) {
      continue;
    }
    var key = decodeURI(keyValueArray[0]);
    var value = decodeURI(keyValueArray[1]);
    result[key] = value;
  }
  return result;
},

 

二. 从cookie获取数据

getValueFromCookie: function(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) {
    return parts.pop().split(";").shift();
  } else {
    return undefined
  }
},

 

三. 在cookie中存值

document.cookie = "hasAuthorization=1;path=/;expires=" + expiresDate.toGMTString();

 

四. 根据正负数设字体颜色

getFontColor: function(value, defaultNullFontColor) {
  if (!value || isNaN(value) || value === '0') {
    return defaultNullFontColor ? defaultNullFontColor : 'font-color-grey';
  }
  return value > 0 ? 'font-color-orange' : 'font-color-green';
},

 

五. 把服务端返回的数字处理成显示的值

setDisplayValue: function(value, opts) {
  var defaultValue = (opts && opts['defaultValue']) ? opts['defaultValue'] : '- -';
  if (!value || isNaN(value) || value === '0') {
    if (opts && opts['defaultValueForZero'] && (value === '0' || value === 0)) {
      return opts['defaultValueForZero'];
    }
    return defaultValue;
  }
  if (opts && $.type(opts['specialDict']) == 'object') {
    var specialValue = opts['specialDict'][value];
    if (specialValue) {
      return specialValue;
    }
  }
  if (opts && $.type(opts['handleValue']) == 'function') {
    var displayValue = opts['handleValue'](value);
  } else {
    var displayValue = value;
  }
  if (displayValue > 0) {
    if (opts && opts['noPositive']) {
      return defaultValue;
    }
    var addFrontSymbolValue = (opts && opts['addFrontSymbolForPositive']) ? (opts['addFrontSymbolForPositive'] + displayValue) : displayValue;
    if (opts && opts['addBehindSymbolForPositive']) {
      return (addFrontSymbolValue + opts['addBehindSymbolForPositive']);
    } else if (opts && opts['addBehindSymbol']) {
      return (addFrontSymbolValue + opts['addBehindSymbol']);
    }
    return addFrontSymbolValue;
  } else {
    if (opts && opts['noNegative']) {
      return defaultValue;
    }
    var addFrontSymbolValue = (opts && opts['addFrontSymbolForNegative']) ? (opts['addFrontSymbolForNegative'] + displayValue) : displayValue;
    if (opts && opts['addBehindSymbolForNegative']) {
      return (addFrontSymbolValue + opts['addBehindSymbolForNegative']);
    } else if (opts && opts['addBehindSymbol']) {
      return (addFrontSymbolValue + opts['addBehindSymbol']);
    }
    return addFrontSymbolValue;
  }
}

 

转载于:https://www.cnblogs.com/ccblogs/p/5258772.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值