一个功能更强大的字符串格式化函数

作者:月影 来源:无忧脚本 时间:2008-04-30 17:44:00 

This is a {t}. {name}是一个很强大的字符串模板解析方法。

它接受三个参数,分别是{args.text},{args.object},(可选的){args.decorator}
它最直接的用法是将{args.text}所表示的字符串中用"{{}"和"{}}"包含起来的字符串解析成object的属性。

例如: System.substitute("{{}a{}} love {{}b{}}.", {{}a:"I", b:"you"{}});

将得到{a} love {b}.

值得注意的是,模板替换可以支持多级属性替换,例如本例子中的{{}args.text{}},还可以支持表达式

例如{{}x{}}+{{}y{}} = {{}x+y{}} => {x} + {y} = {x+y}

 

/**
 * 判定一个对象是否被定义过
 */
Object.defined = function(obj, prop){
    return typeof(obj) != 'undefined' && (prop == null || obj.hasOwnProperty(prop));
};
System = {};
System.substitute = function(s, o, f){
    
    var patternExpr = /{([^{}]*)}/g
    s = s.replace(patternExpr, function(s,a){
            if(!a) return '';
            try{
                var r = eval("with(o){"+s+"}");
                return Object.defined(r)?(f?f(r):r):'';
            }catch(ex){return "{"+s+"}";}
    });
    return s;
};


标签:字符串,格式化,函数
0
投稿

猜你喜欢

  • Numpy中的数组搜索中np.where方法详细介绍

    2022-08-31 22:09:40
  • Python异步编程之协程任务的调度操作实例分析

    2023-02-23 17:03:46
  • python 处理dataframe中的时间字段方法

    2021-04-27 05:21:33
  • 用Python的Django框架编写从Google Adsense中获得报表的应用

    2022-10-01 13:20:07
  • Python利用requests模块下载图片实例代码

    2023-11-18 16:10:13
  • SQL Server四个系统表的知识讲解

    2024-01-29 00:13:57
  • Python pandas RFM模型应用实例详解

    2023-10-15 23:27:34
  • 使用Python自动生成HTML的方法示例

    2022-08-12 12:12:18
  • SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解

    2024-01-22 01:11:56
  • uni-app的基本使用教程

    2024-05-11 09:15:18
  • 一段压缩MS SQLServer日志的语句

    2024-01-14 23:42:07
  • 解决Pytorch 加载训练好的模型 遇到的error问题

    2022-07-21 11:10:45
  • sqlserver中with(nolock)深入分析

    2024-01-27 13:39:48
  • PHP结构型模式之装饰器模式

    2023-05-30 08:43:07
  • 用Python创建简易网站图文教程

    2023-03-09 20:37:57
  • python读取hdfs上的parquet文件方式

    2021-04-07 11:54:31
  • PHP html_entity_decode()函数讲解

    2023-06-01 00:59:43
  • go run main.go 一直提示找不到包的解决方案

    2024-02-14 00:07:41
  • vue.js实现价格格式化的方法

    2024-05-10 14:20:06
  • 用命令创建MySQL数据库(de1)的方法

    2024-01-22 16:12:11
  • asp之家 网络编程 m.aspxhome.com