(2)字符串处理


良好的代码阅读体验 && 最新版本,移步 作业部落 (3) 字符串处理


基础编程中,几乎无时不刻都需要对字符串的进行处理。
推荐一个轮子,underscore 是一个强大的字符串处理库。


字符串格式化

ES6代码规范中,实现有 Template strings 属性。
在node util 模块内有 util.format 方法,可以实现字符串格式化。

不完美的 ES3 实现
String.prototype.template.js,从性能和可维护来说,不是很实用,看下js的各种神奇写法还行。

node util.format 源码简化版
browse && node support,移除了 inspect 特性

'use strict'
/**
 * 使用示例
 * format('i am %s,top %d %%,more detail %j','lilei','23',{'height':'176cm'})
 * i am lilei,top 23 %,more detail {"height":"176cm"}
 * @return {str}
 *
 * edit by plusmancn@gmail.com  wechat@plusman
 */
function format(f) {
  var formatRegExp = /%[sdj%]/g;

  var i = 1;
  var args = arguments;
  var len = args.length;
  var str = String(f).replace(formatRegExp, function(x) {
    if (x === '%%') return '%';
    if (i >= len) return x;
    switch (x) {
      case '%s': return String(args[i++]);
      case '%d': return Number(args[i++]);
      case '%j':
        try {
          return JSON.stringify(args[i++]);
        } catch (_) {
          return '[Circular]';
        }
      default:
        return x;
    }
  });

  return str;
};

简易format实现

'use strict'
/**
 * JS字符串格式化函数
 *
 * 使用示例
 * "you say {0} to who,so {1} say {0} to you too".format('world','Julia'); 
 * //output you say world to me,so Julia say world to you too
 *
 * edit by plusmancn@gmail.com  wechat@plusman
 */
String.prototype.format = function() {
  var args = Array.prototype.slice.call(arguments);
  return this.replace(/\{(\d+)\}/g,function(all,k){
    return args[k];
  });
};

C风格sprintf函数
移步 sprintf.js

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在挖掘分析的过程当中对字符串的处理是极为重要的,且出现也较为频繁,R语言作为当前最为流行的开源数据分析和可视化平台...
    果果哥哥BBQ阅读 5,940评论 0 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,963评论 19 139
  • 三月奏响离别的笙箫 又要离去开始繁忙的校园生活 各位好诗友、好简友们 我要离开一个月 忙于专业学习、考证与新学期刚...
    萧慕雨阅读 563评论 6 17
  • 习惯的养成需要时间和动机。 丘吉尔在25岁的时候说:他渴望自由;过了25年之后,他说自律很重要;又过了25年,在他...
    邢衍贞阅读 363评论 0 0