没有很仔细的查看你的代码。我想你的要求是判断用户输入的一个字符串是否为一个Double数值吧?可以这样解决:1——
先把这个字符串转换为数值类型,如果转换失败,说明不是有效的数值字符串:var strNumber;//要判断的字符串变量,这里没有赋值
function IsDoubleNum(strNumber)
{
try
{
if(!strNumber)//判断strNumber是否为null,为null则不是double,看你自己的需要了
return false;
var tmp=strNumber/1;//把字符串直接除以1,如果是数值字符串则OK,否则产生异常
var idx=strNumber.indexOf(".");//检索字符串中是否有小数点
if(idx>0&&idx<strNumber.length-1)//如果有小数点且不在最后面则是Double数据
return true;
}
catch
{
}
return false;
}try
{
}var strNumberTmp;
strNumberTmp=strNumber+0;
先把这个字符串转换为数值类型,如果转换失败,说明不是有效的数值字符串:var strNumber;//要判断的字符串变量,这里没有赋值
function IsDoubleNum(strNumber)
{
try
{
if(!strNumber)//判断strNumber是否为null,为null则不是double,看你自己的需要了
return false;
var tmp=strNumber/1;//把字符串直接除以1,如果是数值字符串则OK,否则产生异常
var idx=strNumber.indexOf(".");//检索字符串中是否有小数点
if(idx>0&&idx<strNumber.length-1)//如果有小数点且不在最后面则是Double数据
return true;
}
catch
{
}
return false;
}try
{
}var strNumberTmp;
strNumberTmp=strNumber+0;
bool success = true;//成功for(int i=0;i<str.length;i++)
{
switch(str.charAt(i))
{
case '0':
case '1':
......
case '9':
continue;
case '.':
if(dotted)//遇到过小数点,则此数据无效
success = false;
else
dotted = true;
break;
default:
success = false;//遇到其他字符,则此数据无效
}
if(!success)//如果遇到其他字符或多于一个的小数点
break;
}
function isNumDbl(obj){
var strNumber=obj.value;//要判断的字符串变量
var isDbl;
try{
var strNumberTmp;
strNumberTmp=strNumber+0;
}
catch{ isDbl=false;
}
if(!isDbl){
alert("请输入有效的数字(>0)!");
obj.focus();
}
}
fantasydog(百里怜雪)的方法相对复杂了些。
而且形如00000.12345132的数字不能判断。
需要添加代码阿。
<script language="javascript">
function isNumDbl(obj){
var str=obj.value;//要判断的字符串变量
var dotted =false;//是否已经遇到小数点
var success=true;//成功
if(str.charAt(0)=="0"&&str.charAt(1)=="0")
success=false;
for(int i=0;i<str.length;i++)
{
switch(str.charAt(i))
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
continue;
case '.':
if(dotted)//遇到过小数点,则此数据无效
success = false;
else
dotted = true;
break;
default:
success = false;//遇到其他字符,则此数据无效
}
if(!success)//如果遇到其他字符或多于一个的小数点
break;
}
if(!success){
alert("请输入有效的数字(>0)!");
obj.focus();
}
}
</script>