js 中有没有替换String.format("%05d",“”)的方法吗??~跪求~~急等!!

fengziba 2009-12-24 02:56:20
js 中有没有替换String.format("%05d",“”)的方法啊~跪求~~急等
...全文
772 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengziba 2009-12-24
  • 打赏
  • 举报
回复
谢谢各位 我找到其他方法解决了 再次谢谢 结贴给分
xuyiazl 2009-12-24
  • 打赏
  • 举报
回复

var formats = {
'%': function(val) { return '%'; },
'b': function(val) { return parseInt(val, 10).toString(2); },
'c': function(val) { return String.fromCharCode(parseInt(val, 10)); },
'd': function(val) { return parseInt(val, 10) ? parseInt(val, 10) : 0; },
'u': function(val) { return Math.abs(val); },
'f': function(val, p) { return (p > -1) ? Math.round(parseFloat(val) * Math.pow(10, p)) / Math.pow(10, p) : parseFloat(val); },
'o': function(val) { return parseInt(val, 10).toString(8); },
's': function(val) { return val; },
'S': function(val, p) { var len = p - val.toString().length; for (i = 0; i < len; i++) val = '0' + val; return val; },
'x': function(val) { return ('' + parseInt(val, 10).toString(16)).toLowerCase(); },
'X': function(val) { return ('' + parseInt(val, 10).toString(16)).toUpperCase(); }
};

var re = /%(?:(\d+)?(?:\.(\d+))?|\(([^)]+)\))([%bcdufosSxX])/g;

var dispatch = function(data) {
if (data.length == 1 && typeof data[0] == 'object') {
data = data[0];
return function(match, w, p, lbl, fmt, off, str) {
return formats[fmt](data[lbl]);
};
} else {
var idx = 0;
return function(match, w, p, lbl, fmt, off, str) {
return formats[fmt](data[idx++], p);
};
}
};

String.prototype.sprintf = function() {
//var argv = Array.apply(null, arguments);
return this.replace(re, dispatch(arguments));
}
String.prototype.vsprintf = function(data) {
return this.replace(re, dispatch(data));
}

//sprintf


var classixxc = '%.5S'.sprintf(10);
alert(classixxc)
//classic = '00010'
var classic = '%s %d% %.3f'.sprintf('string', 40, 3.141593);
alert(classic)
// classic = 'string 40% 3.142'
var named = '%(name)s: %(value)d'.sprintf({ name: 'age', value: 40 });
alert(named)
//named = 'age: 40'
//vsprintf
var classisc = '%s %d% %.3f'.vsprintf(['string', 40, 3.141593]);
alert(classisc)
// classisc = 'string 40% 3.142'
踏雪浪人 2009-12-24
  • 打赏
  • 举报
回复

<script language="javascript">
function string_format(str){
if(str.length < 5){
var k = 5 - str.length;
for(var i = 0 ; i < k ; i++){
str = "0" + str;

}
}
return str;
}
alert(string_format("2"));
</script>
fengziba 2009-12-24
  • 打赏
  • 举报
回复
不能沉啊~~ 谁能解救一下我啊~~~跪求啊~~
fengziba 2009-12-24
  • 打赏
  • 举报
回复
难道没有办法么?
fengziba 2009-12-24
  • 打赏
  • 举报
回复
谢谢 可是我想实现
如果是 1 的话 就显示00001 如果是 10 的话就显示 00010 如果是 100 就显示 00100 这样的效果
ggwk 2009-12-24
  • 打赏
  • 举报
回复
以前收藏的,正好给你

<script type="text/javascript">

//V1 method
String.prototype.format = function()
{
var args = arguments;
return this.replace(/\{(\d+)\}/g,
function(m,i){
return args[i];
});
}



//V2 static
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;
}

var a = "I Love {0}, and You Love {1},Where are {0}! {4}";
alert(String.format(a, "You","Me"));

alert(a.format("You","Me"));
</script>

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧