1.给文本框添加一个οnkeyup='clearNoNum(this)'点击事件
2.建立clearNoNum方法
[javascript]
view plain
copy
- function clearNoNum(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 plain
copy
- function onlyNumber1(input, n) {
- var ret = "";
- var number =input.value;
- if (number != ""&& number!=&&number!="0") {
- var unit = "仟佰拾亿仟佰拾万仟佰拾元角分",
- str = "";
- number += "00";
- var point = number.indexOf('.');
- if (point >= 0) {
- number = number.substring(0, point) + number.substr(point + 1, 2);
- }
- unit = unit.substr(unit.length - number.length);
- for (var i = 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, "元") + "整";
- }
- var a = document.getElementsByName("MoneyCapital")[0].id;
- document.getElementById(a).value=ret;
- }