"^(-?\d+)(\.\d+)?$" //浮点数 function formatNum(s) //将数字转换成三位逗号分隔的样式 { if(!/^(\+|-)?\d+(\.\d+)?$/.test(num)){alert("wrong!"); return num;} var re = new RegExp().compile("(\\d)(\\d{3})(,|\\.|$)"); num += ""; while(re.test(num)) num = num.replace(re, "$1,$2$3") return num; } alert(formatNum(-12345678.123)); alert(formatNum("12345678.123")); alert(formatNum("10000000000000000000000000000000000000000"));
{
if(!/^(\+|-)?\d+(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var re = new RegExp().compile("(\\d)(\\d{3})(,|\\.|$)");
num += ""; while(re.test(num))
num = num.replace(re, "$1,$2$3")
return num;
}
alert(formatNum(-12345678.123));
alert(formatNum("12345678.123"));
alert(formatNum("10000000000000000000000000000000000000000"));
这个正则表达式
\d{1,3}(?:,\d{3})*(?:\.\d+)?
可以匹配类似48,125,654.58412这样的数值(完整匹配),已在JScript 5.6下面通过,希望对楼主有帮助~~~:)
http://www.ideacool.net/viewidea770.html
{
var patrn=/^[0-9]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
var dot1st = theStr.indexOf('.');
var dot2nd = theStr.lastIndexOf('.');
var OK = true;if (isEmpty(theStr)) return false;if (dot1st == -1) {
if (!isInt(theStr)) return(false);
else return(true);
}else if (dot1st != dot2nd) return (false);
else if (dot1st==0) return (false);
else {
var intPart = theStr.substring(0, dot1st);
var decPart = theStr.substring(dot2nd+1);if (decPart.length > decLen) return(false);
else if (!isInt(intPart) || !isInt(decPart)) return (false);
else if (isEmpty(decPart)) return (false);
else return(true);
}
}