Just another high performance string format function for JavaScript
2006-11-30 11:02
387 查看
// Copyright (c) HE Shi-Jun <hax.sfo at gmail dot com>, 2006
// Below codes can be used under GPL (v2 or later) or LGPL (v2.1 or later) license
format2.cache = ...{};
function format2(pattern) ...{
if (!(pattern in format2.cache)) ...{
format2.cache[pattern] = new Function('"' + pattern.replace(/"/g, '/"').replace(/$([0-9]+)/g, '" + arguments[$1] + "').replace(/$$/g, '$') + '"');
}
return format2.cache[pattern](arguments);
}
Compare to previous method, it's even more fast in heavy using (especially on FireFox and Opera), because it's compile the pattern to function and cache it. But this method will waste memory. So the best practice is combining these two methods.
And the no cache version here, but not helpful, because it's lose the advantage of cacheable and will be very slow on Opera:
// Copyright (c) HE Shi-Jun <hax.sfo at gmail dot com>, 2006
// Below codes can be used under GPL (v2 or later) or LGPL (v2.1 or later) license
function format3(pattern) ...{
return eval('"' + pattern.replace(/"/g, '/"').replace(/$([0-9]+)/g, '" + arguments[$1] + "').replace(/$$/g, '$') + '"');
}
// Below codes can be used under GPL (v2 or later) or LGPL (v2.1 or later) license
format2.cache = ...{};
function format2(pattern) ...{
if (!(pattern in format2.cache)) ...{
format2.cache[pattern] = new Function('"' + pattern.replace(/"/g, '/"').replace(/$([0-9]+)/g, '" + arguments[$1] + "').replace(/$$/g, '$') + '"');
}
return format2.cache[pattern](arguments);
}
Compare to previous method, it's even more fast in heavy using (especially on FireFox and Opera), because it's compile the pattern to function and cache it. But this method will waste memory. So the best practice is combining these two methods.
And the no cache version here, but not helpful, because it's lose the advantage of cacheable and will be very slow on Opera:
// Copyright (c) HE Shi-Jun <hax.sfo at gmail dot com>, 2006
// Below codes can be used under GPL (v2 or later) or LGPL (v2.1 or later) license
function format3(pattern) ...{
return eval('"' + pattern.replace(/"/g, '/"').replace(/$([0-9]+)/g, '" + arguments[$1] + "').replace(/$$/g, '$') + '"');
}
相关文章推荐
- A high performance string format function for JavaScript
- String.format in JavaScript
- Designing Applications for High Performance - Part II
- String Format for DateTime
- 为javascript添加String.Format方法
- High-Performance Ray Tracing for Dynamic Scenes
- Caused by: java.lang.NumberFormatException: For input string: ""
- java.lang.NumberFormatException: For input string: "00:06:39" 问题记录
- lang.NumberFormatException: For input string: "hash"
- Making best use of cache for high performance website
- 解决python中TypeError: not enough arguments for format string
- String.ReplaceAll function in JavaScript
- JavaScript 实现格式化字符串函数String.format (解决引号嵌套转义符问题)
- mybatis java.lang.NumberFormatException: For input string: "G"
- java.lang.NumberFormatException: For input string: NaN 什么意思
- SHiP: Signature-based Hit Predictor for High Performance Caching结合Sniper的实现
- String Format for Double [C#]
- [置顶] High Performance Canvas Game for Android
- 高性能MySQL笔记-第5章Indexing for High Performance-001B-Tree indexes(B+Tree)
- mybatis 报错:Caused by: java.lang.NumberFormatException: For input string