比對input内隻能輸入數字和","逗号或者說是千分位符;
PS:使用千分位符時,一般隻保留2位小數
如果沒有特殊說明可以用html中的
<input type="number">
number屬性可以輸入"e" "e"是科學計算中的自然數 是以是可以輸入的;
/*限制隻能輸入數字 和 "," */
if ($(this).val().length == 1) {
$(this).val($(this).val().replace(/[^1-9]/g, ''));
} else {
$(this).val($(this).val().replace(/\D,/g, ''));
}
數字裝千分位格式,千分位格式轉回數字格式
/*千分位轉整數*/
function thousandsToNumber(str){
str = typeof(str) == "string" ? str : str.toString(); //将傳入參數轉為字元串以做修改
return parseFloat(str.split(",").join(""));
}
/*整數 小數 封裝千分位符*/
function numberToThousands(number, n) {
number = thousandsToNumber(number.toString()); /*轉為字元串*/
n = n == undefined || n == 0 ? 0 : n; //保留位數
var num = (Math.round(number * (Math.pow(10, n))) / (Math.pow(10, n))).toString(); //保留小數位數
var rs = num.indexOf('.'); //分離成小數部分和整數部分
/*對不足位數的補零*/
if (rs < 0) {
rs = num.length;
num += '.';
}
while (num.length <= rs + n) {
num += '0';
}
var integer = num.split(".")[0];
var decimal = num.split(".")[1];
/*保留小數 不保留小數*/
return n == 0 ? integer.toString().replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, '$1,') : integer.toString().replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g, '$1,') + "." + decimal;
}
部分資源來源: http://blog.csdn.net/zyj_15067066062/article/details/72469735