jQuery将数字格式化为货币类型

本文介绍了两种方式来实现输入数值的验证与格式化:一种是通过正则表达式匹配合法的数字输入,并进行千位分隔;另一种是通过一系列步骤确保输入为合法数字,并进行格式调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//第一种方式

_(function(){

$('input[util="num"]').each(function(){

var self = $(this),

_self = this,

reg = /^[\-\+]?((\d+)([\.,](\d{3}))*([\.](\d+))?|([\.,](\d+))?)$/;

$(this).bind({

focus : function(){

self.val(self.val().split(',').join(''));

},

blur : function(){

if(!reg.test( self.val() )){

alert("您输入的值有误,只能输入整数!");

_self.select();

} else {

var arr = self.val().split('.'),

num = arr[0],

num2 = null;

if(arr.length > 1){

num2 = arr[1];

}

if(num.length > 3){

var _arr = num.split('').reverse(),

len = _arr.length,

page = Math.ceil(len / 3),

str = '';

for(var i=0; i<page; i++){

if(i*3 < len) str += _arr[i*3];

if(i*3+1 < len) str += _arr[i*3+1];

if(i*3+2 < len) str += _arr[i*3+2];

str += ',';

}

str = str.substring(0, str.length-1)

.split('').reverse().join('');

if(num2 !== null){

str += '.' + num2;

}

self.val(str);

}

}

}

});

});

});

 

在表单里加入 util=“num” 

<input type="text" util="num" />

<input type="text" util="num" />

<input type="text" util="num" />

<input type="text" util="num" />

 

//第二种方式

_(function(){

reg = /^[\-\+]?((\d+)([\.,](\d{3}))*([\.](\d+))?|([\.,](\d+))?)$/;

var s;

$('input[util="num"]').each(function(){

$(this).bind("blur",function(){

s = $(this).val();

dh = /,/;

while (dh.test(s)) {

s = s.replace(dh, "");

}

if (!reg.test(s)) {

alert("您输入的可能不是数字");

return false;

}

s = s.replace(/^(\d*)$/, "$1.");

s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");

s = s.replace(".", ",");

var re = /(\d)(\d{3},)/;

while (re.test(s)) {

s = s.replace(re, "$1,$2");

}

s = s.replace(/,(\d\d)$/, ".$1");

$(this).val(s.replace(/^\./, "0."));

});

});

});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值