<script type="text/javascript"> function test(){ var a=document.getElementById("mm"); var b=parseInt(a.getAttribute("maxlength")); var c=a.value; var d=b-c.length; var e=""; for(var i=0;i<d;i++){ e+="0"; } a.value=e+c; } </script> </head><body> <input type="text" maxlength="3" onblur="test()" id="mm"> </body> 这样试试
function sFormat(i, s) { //i 返回的字符串位数,输入字符串s不足i位的用0填充 var ar_tmp = s.split(''), ar = []; for (x in ar_tmp) if (/[\d]+/.test(ar_tmp[x])) ar.push(ar_tmp[x]); //把非数字的字符全删掉 while (ar.length < i) ar.unshift('0'); return ar.join(''); }
<script type="text/javascript"> //补零 String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } function sFormat(i, s) { //i 返回的字符串位数,输入字符串s不足i位的用0填充 alert(s.Trim()); var ar = s.Trim().split(' '); while (ar.length < i) ar.unshift('0'); return ar.join(''); } </script> 嘿嘿,我写成这样的了 还是你的简洁~ 太感谢了~
function test(){
var a=document.getElementById("mm");
var b=parseInt(a.getAttribute("maxlength"));
var c=a.value;
var d=b-c.length;
var e="";
for(var i=0;i<d;i++){
e+="0";
}
a.value=e+c;
}
</script>
</head><body>
<input type="text" maxlength="3" onblur="test()" id="mm">
</body>
这样试试
//i 返回的字符串位数,输入字符串s不足i位的用0填充
var ar = s.split('');
while (ar.length < i) ar.unshift('0');
return ar.join('');
}alert(sFormat(3, '1')); //001
alert(sFormat(3, '12')); //012
alert(sFormat(3, '123')); //123
<script type="text/javascript">
//补零
function sFormat(i, s) {
//i 返回的字符串位数,输入字符串s不足i位的用0填充
var ar = s.split('');
while (ar.length < i) ar.unshift('0');
return ar.join('');
}
</script>
<input type="text" maxlength="3" name="demo" onchange="this.value = sFormat(3, this.value);" />
实现这个用blur(失去焦点)实现
我刚动手测了一下,就是我想要的效果,非常感谢。
不过有些东西我不大明白,譬如 .split .join .unshift我就不大明白是啥意思(见谅,我是做嵌入式的,这些是为了做UI)。
我得去查查。
<script type="text/javascript">
//补零
function sFormat(i, s) {
//i 返回的字符串位数,输入字符串s不足i位的用0填充
var ar = s.split('');
while (ar.length < i) ar.unshift('0');
return ar.join('');
}
</script>
<input type="text" maxlength="3" name="demo" onblur="this.value = sFormat(3, this.value);" />
共同学习哦~
split()是字符串对象的方法,把字符串用分隔符分割为一个数组;unshift()、join()都都数组对象的基本方法。
http://www.w3school.com.cn/js/jsref_obj_array.asp
有个BUG,假如我输入的有空格的话。。前后有空格,或者中间有空格。得先把空格去掉。我还得去查查有什么函数是干这个的。
//i 返回的字符串位数,输入字符串s不足i位的用0填充
var ar_tmp = s.split(''), ar = [];
for (x in ar_tmp) if (/[\d]+/.test(ar_tmp[x])) ar.push(ar_tmp[x]); //把非数字的字符全删掉
while (ar.length < i) ar.unshift('0');
return ar.join('');
}
<script type="text/javascript">
//补零
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
} function sFormat(i, s) {
//i 返回的字符串位数,输入字符串s不足i位的用0填充
alert(s.Trim());
var ar = s.Trim().split(' ');
while (ar.length < i) ar.unshift('0');
return ar.join('');
}
</script> 嘿嘿,我写成这样的了
还是你的简洁~ 太感谢了~