學習筆記9:JS將字符串轉為會計專用的帶,號的金額,并過濾不符合金額的格式
瀏覽量:3933
JS將字符串轉為會計專用的帶,號的金額,并過濾不符合金額的格式
<input type="text" id="txtprojectcost">
//把值按3個為一組加入,號,小數點內保留兩位
為txtprojectcost增加keyup和blur方法
$("#txtprojectcost").keyup(function(){
if(isNaN(this.value.replaceAll(",",""))){
this.value = this.value.replaceAll(",","").replace(/[^\d.]/g, "");
為txtprojectcost增加keyup和blur方法
$("#txtprojectcost").keyup(function(){
if(isNaN(this.value.replaceAll(",",""))){
this.value = this.value.replaceAll(",","").replace(/[^\d.]/g, "");
this.value=this.value.replaceAll(",","").replace(/^\./g, "");//首位不能為.
this.value=this.value.replaceAll(",","").replace(/^00/g, "");//首兩位不能為00
}
}).blur(function(){
jiSuan(this);
});
this.value=this.value.replaceAll(",","").replace(/^00/g, "");//首兩位不能為00
}
}).blur(function(){
jiSuan(this);
});
function jiSuan(obj)
{
var newStr = "";
var count = 0;
{
var newStr = "";
var count = 0;
obj.value=obj.value.replaceAll(",","");
if(obj.value=="") return;
if(obj.value.indexOf(".")==-1)
{
for(var i=obj.value.length-1;i>=0;i--)
{
if(count % 3 == 0 && count != 0)
{
newStr = obj.value.charAt(i) + "," + newStr;
}
else
{
newStr = obj.value.charAt(i) + newStr;
}
count++;
}
obj.value = newStr + ".00";
}
else
{
for(var i=obj.value.indexOf(".")-1;i>=0;i--)
{
if(count % 3 == 0 && count != 0)
{
newStr = obj.value.charAt(i) + "," + newStr;
}
else
{
newStr = obj.value.charAt(i) + newStr;
}
count++;
}
if(obj.value=="") return;
if(obj.value.indexOf(".")==-1)
{
for(var i=obj.value.length-1;i>=0;i--)
{
if(count % 3 == 0 && count != 0)
{
newStr = obj.value.charAt(i) + "," + newStr;
}
else
{
newStr = obj.value.charAt(i) + newStr;
}
count++;
}
obj.value = newStr + ".00";
}
else
{
for(var i=obj.value.indexOf(".")-1;i>=0;i--)
{
if(count % 3 == 0 && count != 0)
{
newStr = obj.value.charAt(i) + "," + newStr;
}
else
{
newStr = obj.value.charAt(i) + newStr;
}
count++;
}
obj.value = newStr + (obj.value + "00").substr((obj.value + "00").indexOf("."),3);
}
}
}
由于給值加入逗號后正則判斷會認為值不符合,所以需要替換到字符串內所有的,號,AFindText要替換掉得字符,ARepText 替換為
String.prototype.replaceAll = stringReplaceAll;
function stringReplaceAll(AFindText,ARepText){
var st='/'+AFindText+"/gi";
return this.replace(eval("/"+AFindText+"/ig"),ARepText);
}
由于給值加入逗號后正則判斷會認為值不符合,所以需要替換到字符串內所有的,號,AFindText要替換掉得字符,ARepText 替換為
String.prototype.replaceAll = stringReplaceAll;
function stringReplaceAll(AFindText,ARepText){
var st='/'+AFindText+"/gi";
return this.replace(eval("/"+AFindText+"/ig"),ARepText);
}