您的位置:首页 > Web前端 > JavaScript

JS自动给文本框的数字加千分位

2014-09-01 11:48 483 查看
<head><title>Test</title></head>

<body>

<input type="text" id="input_box" value=""/>

<script>

var input_box = document.getElementById("input_box"),

valueBuf,

_valueBuf;

input_box.onblur =function(){

valueBuf =this.value;

_valueBuf = valueBuf.replace(/(\d{3})+$/g, function(){

var args = arguments,

len = args.length,

ret = args[0].match(/(\d{3})/g).join(',');

if(args[0] !== args[len -1]){

ret =','+ ret;

}

return ret;

});

this.value = _valueBuf;

}

input_box.onfocus =function(){

if(valueBuf){

this.value = valueBuf;

}

}

</script>

</body>

</html>
方法二:
<head><title>Test</title>

</head>

<body>

<input type="text" id="input_box" value=""/>

<script>

var input_box = document.getElementById("input_box"),

valueBuf;

window.onload =function(){

input_box.value ='';

}

input_box.onblur =function(){

valueBuf =this.value;

this.value = valueBuf.replace(/\d{3}(?=(?:\d{3})*$)/g, function(){

var args = arguments;

if(args[1] ===0){

return args[0];

}else{

return','+args[0];

}

});

}

input_box.onfocus =function(){

if(valueBuf){

this.value = valueBuf;

}

}

</script>

</body>

</html>
方法三:
<head><title>Test</title></head>

<body>

<input type="text" id="input_box" value=""/>

<script>

var input_box = document.getElementById("input_box");

input_box.onblur =function(){

this.value =this.value.replace(/\d+?(?=(?:\d{3})+$)/g, function(s){

return s +',';

});

}

input_box.onfocus =function(){

this.value =this.value.replace(/,/g, '');

}

</script>

</body>

</html>
方法四: JS千分位处理(包括保留两位小数)

<html>

<head>

<title> JS千分位处理 </title>

</head>

<script>

function $$(id){return document.getElementById(id);}

/**

* 数字格式转换成千分位

*@param{Object}num

*/

function commafy(num) {

//1.先去除空格,判断是否空值和非数

num = num + "";

num = num.replace(/[ ]/g, ""); //去除空格

if (num == "") {

return;

}

if (isNaN(num)){

return;

}

//2.针对是否有小数点,分情况处理

var index = num.indexOf(".");

if (index==-1) {//无小数点

var reg = /(-?\d+)(\d{3})/;

while (reg.test(num)) {

num = num.replace(reg, "$1,$2");

}

} else {

//这里要求保留两位小数

num = new Number(num).toFixed(2);

var intPart = num.substring(0, index);

var pointPart = num.substring(index + 1, num.length);

var reg = /(-?\d+)(\d{3})/;

while (reg.test(intPart)) {

intPart = intPart.replace(reg, "$1,$2");

}

num = intPart +"."+ pointPart;

}

return num;

}

/**

* 去除千分位

*@param{Object}num

*/

function delcommafy(num){

num = num.replace(/[ ]/g, "");//去除空格

num=num.replace(/,/gi,'');

return num;

}

function doit1(val){

if(val.indexOf(",")>-1){

var t = delcommafy(val);

$$("tx").value = t;

}

}

function doit2 (val){

var t = commafy(val);

$$("tx").value = t;

}

</script>

<body>

<input type="text" name="tx" id="tx" onfocus="doit1(this.value)" onblur="doit2(this.value)" value=""/>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: