<HTML>
<HEAD>
<TITLE>限定10进制数字</TITLE>
</HEAD>
<BODY><input type="text" id="numTaker"><input type="button" value="check" onclick="checkNum(document.all.numTaker.value)"></BODY>
</HTML>
<SCRIPT LANGUAGE=javascript>
<!--
function String.prototype.trim() {
return this.replace(/(^\s*)|(\s*$)/gi, "");
}/**
 * 严格限定,认为
 * + 1,- 1,+0000,-0000,+0000.,0000,
 * 00000.1,0001.,0.,001.,100.,09.9 
 * 等输入不合法
 * 浮点数:从浮点数精度考虑,0.00000是合法的
 */
function checkNum(str) {
// 去掉首尾空格
str = str.trim();

if(str.indexOf(".") >= 0 && str.split(".").length == 2) {
// 1个小数点,可能浮点数
var regExpInvalid1 = /^(\+|-)?0\d+\.\d*$/;
var regExpInvalid2 = /^(\+|-)?0{2,}\d*\.\d*$/;
var regExpInvalid3 = /^(\+|-)?\d*\.$/;
var regExpInvalid4 = /^(\+|-)?\.\d*$/;
var regExp = /^(\+|-)?\d*\.\d*$/gi;

alert(!regExpInvalid1.test(str) 
      && !regExpInvalid2.test(str)
      && !regExpInvalid3.test(str)
      && !regExpInvalid4.test(str)
&& regExp.test(str));

} else if(str.indexOf(".") < 0){
// 可能整数
// 正则表达式
var regExpInvalidZero1 = /^(\+|-)0{1,}$/;
var regExpInvalidZero2 = /^0{2,}$/gi;
var regExpInvalidNoneZero = /^(\+|-)?0\d+$/;
var regExp = /^(\+|-)?\d+$/;
alert(!regExpInvalidZero1.test(str) 
      && !regExpInvalidZero2.test(str)
      && !regExpInvalidNoneZero.test(str)
&& regExp.test(str));

} else {
// 不可能两个小数点
alert(false);
}

document.all.numTaker.focus();
}
//-->
</SCRIPT>