Cho một textbox để nhập như sau:
<input type='text'/>
Viết hàm để định dạng nhập dữ liệu:
$('input').on('input', function(e){
$(this).val(formatCurrency(this.value.replace(/[,VNĐ]/g,'')));
}).on('keypress',function(e){
if(!$.isNumeric(String.fromCharCode(e.which))) e.preventDefault();
}).on('paste', function(e){
var cb = e.originalEvent.clipboardData || window.clipboardData;
if(!$.isNumeric(cb.getData('text'))) e.preventDefault();
});
function formatCurrency(number){
var n = number.split('').reverse().join("");
var n2 = n.replace(/\d\d\d(?!$)/g, "$&,");
return n2.split('').reverse().join('') + 'VNĐ';
}
Thêm thư viện jquery vào để hoạt động
<script type="text/javascript" src="//code.jquery.com/jquery-1.8.3.js"></script>
Demo: http://jsfiddle.net/V2mg6/219/
Hàm định dạng tiền tệ
function formatNumber(nStr, decSeperate, groupSeperate) {
nStr += '';
x = nStr.split(decSeperate);
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + groupSeperate + '$2');
}
return x1 + x2;
}
Cách dùng:
<script>
$("#price").text(formatNumber(700000, '.', ','));
</script>