<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>
<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>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货