javascript模拟实现C# String.format函数功能代码
C# string.format这个功能用到的地方比较多, 所以就用js实现了一个简单的版本 :
String.format = function ()
{
var formatStr = arguments[0];
if ( typeof formatStr === 'string' )
{
var pattern,
length = arguments.length;
for ( var i = 1; i < length; i++ )
{
pattern = new RegExp( '\\{' + ( i - 1 ) + '\\}', 'g' );
formatStr = formatStr.replace( pattern, arguments[i] );
}
} else
{
formatStr = '';
}
return formatStr;
};
以上代码给javascript String类加了一个静态方法 format, 然后其用法就和c#的 string.format一模一样了, 测试如下:
String.format('http://wcf.open.a.com/blog/sitehome/paged/{0}/{1}',1,20)
输出: "http://wcf.open.a.com/blog/sitehome/paged/1/20"
String.format('{0}+{0}+{1}={2}',1,2,1+1+2)
输出: "1+1+2=4"
String.format({name:'leonwang'},'hello,world')
输出: ""
如果第一个参数不是string类型, 就简单返回空string, 不做进一步处理。
相关推荐
-
js中的string.format函数代码
源于C#中的string.Format() 复制代码 代码如下: String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (arguments.length == 1 && typeof (args) == "object") { for (var key in args) { var reg=new RegExp ("({&qu
-
javascript下利用arguments实现string.format函数
下面摘抄一下源码,深入分析一下他的设计实现思路: 复制代码 代码如下: function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args
-
javascript下string.format函数补充
又重新阅读了一遍Andrew的原文,在原文下面的评论中,赫然发现也有人早提出参数个数的问题,同样懒惰的楼猪直接拷贝原文评论答复了一下,同时还发现说漏了很重要的一个注意点Array.prototype.slice.下面统一补充说明一下: 1.string.format的参数个数 在Andrew的原文中,已经有人指出: eric d. Hi, thanks for that brilliant article. Made a lot of things a lot clearer! Note: ne
-
JavaScript实现格式化字符串函数String.format
在js开发中,我们可能会遇到这样一个问题 当需要通过js动态插入html标签的时候 特别是当遇到大量的变量拼接.引号层层嵌套的情况,会出现转义字符问题,经常出错 我们来看个例子 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; c
-
为javascript添加String.Format方法
复制代码 代码如下: String.format = function() { if( arguments.length == 0 ) { return null; } var str = arguments[0]; for(var i=1;i<arguments.length;i++) { var re = new RegExp('\\{' + (i-1) + '\\}','gm'); str = str.replace(re, arguments[i]); } return str; } 使
-
javascript模拟实现C# String.format函数功能代码
C# string.format这个功能用到的地方比较多, 所以就用js实现了一个简单的版本 : 复制代码 代码如下: String.format = function () { var formatStr = arguments[0]; if ( typeof formatStr === 'string' ) { var pattern, length = argume
-
好用的C++ string Format“函数”介绍
我这个人总是喜欢在写代码时追求极致,比如总是纠结于变量的命名,内存的消耗,执行的效率,接口的便捷性,代码的可扩展性...但很多时候需要在他们之间做取舍,这就导致我在编码时经常陷入僵局,唉...真是程序员的可悲,为此几年前我还专门将自己的CSDN签名改成了现在这样. 今天我又带来一个函数,相比网上其他版本效率更高(不存在额外拷贝问题),使用更便捷(无需预先分配缓存). 起初我设计的函数如下:相比网上其他的Format,特点是降低了内存消耗,也提升了使用的便捷性,但带来了执行效率的下降,而更严重的是
-
pandas实现excel中的数据透视表和Vlookup函数功能代码
在孩子王实习中做的一个小工作,方便整理数据. 目前这几行代码是实现了一个数据透视表和匹配的功能,但是将做好的结果写入了不同的excel中, 如何实现将结果连续保存到同一个Excel的同一个工作表中? 还需要探索. import pandas as pd import numpy as np a = [1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1701,1702,1703,1704] for i in a: b = st
-
javascript中的prototype属性使用说明(函数功能扩展)
这是一个比较特殊的属性,Javascript中的继承一般都依赖这属性实现. 在Javascript中,一切都是对象,字符串是对象,数组是对象,变量是对象,函数也是对象,所以才会允许['a','b','c'].push('d');这样的操作存在.类本身也是一个对象,也可以定义属性和方法: 复制代码 代码如下: function Test(){}; Test.str = 'str'; Test.fun = function(){return 'fun';}; var r1 = Test.str; /
-
JavaScript 模仿vbs中的 DateAdd() 函数的代码
项目中需要用到日历,.net的日历控件又太重,只好用js写一个,日历的核心函数是 DateAdd(),编写过程中发现 js 里面操作时间比想象中的繁琐,不像vbscript中的可以轻松地dateadd,后来才想到用 setFullYear().setDate()等内置函数,可以拼合一个js版的 dateadd() 来,代码如下: 复制代码 代码如下: function DateAdd(interval,number,date){ // date 可以是时间对象也可以是字符串,如果是后者,形式必须
-
javascript 模拟Marquee文字向左均匀滚动代码
可以实现匀速.无缝.加链接以及其它的修饰效果,本代码就是实现了这一功能,让文字从右至右平滑滚动,滚动宽度.高度.速度均可以设定. Js文字向左运动 var marqueewidth=350 var marqueeheight=22 var speed=5 var marqueecontents='欢迎光临我们 网页特效栏目,精品特效全收罗!' if (document.all) document.write(''+marqueecontents+'') function regenerate()
-
用VBS模拟实现PHP的sha1_file函数效果代码
复制代码 代码如下: Function sha1_file(filename, raw_output) Dim HashedData, Utility, Stream Set HashedData = CreateObject("CAPICOM.HashedData") Set Utility = CreateObject("CAPICOM.Utilities") Set Stream = CreateObject("ADODB.Stream")
随机推荐
- Ajax 配合node js multer 实现文件上传功能
- jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
- Linux监视进程之ps命令详解
- IE6下focus与blur错乱的解决方案
- js禁止小键盘输入数字功能代码
- Laravel实现表单提交
- 使用c#在word文档中创建表格的方法详解
- Vue.js双向绑定操作技巧(初级入门)
- 消耗CPU资源的shell脚本
- 详解Python验证码识别
- Python简单生成8位随机密码的方法
- 分享28款免费实用的 JQuery 图片和内容滑块插件
- 详解vue axios中文文档
- spring security 5.x实现兼容多种密码的加密方式
- Python爬虫实例扒取2345天气预报
- 手把手教你写一个微信小程序(推荐)
- angular2实现统一的http请求头方法
- Kotlin中Stack与LinkedList的实现方法示例
- php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
- JAVA String.valueOf()方法的用法说明