1、 时间字符串格式化方法

2、获取URL地址问号和后面的参数信息(可能也包含HASH值)

3、实现大数字的千分符处理

  1. !function(){
  2. /*
  3. * 时间字符串格式化方法
  4. * formaTime:时间格式化处理
  5. * @params
  6. * templete:[string] 我们最后期望获取日期格式的模版,模版规则{0}->年 {1-5}->月日时分秒
  7. * @return
  8. * [string]格式化后的时间字符串
  9. * by rockshang on 2020/11/17
  10. */
  11. function formateTime(template="{0}年{1}月{2}日 {3}时{4}分{5}秒"){
  12. let timeAry = this.match(/\d+/g);
  13. return template.replace(/\{(\d+)\}/g,(...[,$1])=>{
  14. let time = timeAry[$1] || "00";
  15. return time.length < 2 ? "0" + time : time;
  16. });
  17. }
  18. /*
  19. * queryURLParams:获取URL地址问号和后面的参数信息(可能也包含HASH值)
  20. * @params
  21. * @return
  22. * [object]把所有问号参数信息以键值对的方式存储起来并且返回
  23. * by rockshang on 2020/11/17
  24. */
  25. function queryURLParams(){
  26. let obj = {};
  27. this.replace(/([^#?&#]+)=([^#?&#]+)/g,(...[,$1,$2])=>obj[$1] = $2)
  28. this.replace(/#([^#?&#]+)/g,(...[,$1])=>obj['HASH']=$1);
  29. return obj
  30. }
  31. /*
  32. * millimeter:实现大数字的千分符处理,使用正向预查?= 只匹配不捕获
  33. * @params
  34. * @return
  35. * [string]千分符后的字符串
  36. * by rockshang on 2020/11/17
  37. */
  38. function millimeter(){
  39. return this.replace(/\d{1,3}(?=(\d{3})+$)/g,content=>content+',')
  40. }
  41. ["formateTime","queryURLParams","millimeter"].forEach(item=>{
  42. String.prototype[item] = eval(item);
  43. });
  44. }();