1.给文本框添加一个οnkeyup='clearNoNum(this)'点击事件
2.建立clearNoNum方法
[javascript]view plaincopyfunctionclearNoNum(obj){obj.value=obj.value.replace(/[^\d.]/g,"");//清除"数字"和"."以外的字符obj.value=obj.value.replace(/^\./g,"");//验证第一个字符是数字而不是. // obj.value=obj.value.replace(/\.{2,}/g,".");//只保留第一个.清除多余的 别人是这么写的,我认为这句没用//,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。
// obj.value=obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); obj.value = obj.value.replace(".","$#$");//只替换第一个字符
obj.value = obj.value.replace(/\./g,"");//替换所有.为空
obj.value = obj.value.replace("$#$","."); //恢复第一个点
//如果replace(".","$#$")替换没有全局/g元字符,则只替换第一个相同字符obj.value=obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数// 使用() 括号为捕获组,此时有三个,因此所匹配的值存放在$1 $2 $3中
}
3将金额小写转换成大写
[javascript]view plaincopyfunctiononlyNumber1(input,n){varret="";varnumber=input.value;if(number!=""&&number!=&&number!="0"){varunit="仟佰拾亿仟佰拾万仟佰拾元角分",str="";number+="00";varpoint=number.indexOf('.');if(point>=0){number=number.substring(0,point)+number.substr(point+1,2);}unit=unit.substr(unit.length-number.length);for(vari=0;i<number.length;i++){str+='零壹贰叁肆伍陆柒捌玖'.charAt(number.charAt(i))+unit.charAt(i);}ret=str.replace(/零(仟|佰|拾|角)/g,"零").replace(/(零)+/g,"零").replace(/零(万|亿|元)/g,"$1").replace(/(亿)万|(拾)/g,"$1$2").replace(/^元零?|零分/g,"").replace(/元$/g,"元")+"整";}vara=document.getElementsByName("MoneyCapital")[0].id;document.getElementById(a).value=ret;}
HTML控制文本框只能输入数字和小数点 并且只能保留小数点后两位 金额转换 阿拉伯数字的金额转换成 面试题
如果觉得《HTML控制文本框只能输入数字和小数点 并且只能保留小数点后两位 金额转换 阿拉伯》对你有帮助,请点赞、收藏,并留下你的观点哦!