<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<input id="T1" type="text" value="1,234,567">
<input id="B1" type="button" value="test" onClick="alert(foo())">
<script>
function foo(){
var myStr = T1.value
if(myStr.charAt(0) == '0')
return "bad";
var nMark = myStr.indexOf(',');
if(myStr.indexOf(',') > 3)
return "bad";
myStr = myStr.substr(nMark + 1);
nMark = myStr.indexOf(',');
while(nMark != -1){
if(nMark != 3)
return "bad";
myStr = myStr.substr(nMark + 1);
nMark = myStr.indexOf(',');
}
if(myStr.length != 3)
return "bad";
return "good";
}
</script>
</BODY>
</HTML>

解决方案 »

  1.   

    function checkFormat(str)
    {
    var reg= /^[1-9](\d{1})?,[1-9]\d{2}(,[1-9]\d{2})?$/; if(!reg.test(str))   
    {
    alert("xx,xxx,xxx 格式!");
    document.forms[0].elements['sformat'].focus();
    return false;
    }
    }
      

  2.   

    littleboys(littleboys)
    你的方法不错但是我输入了:123
    他还是会提示错误,怎样才能只在输入了“,”的时候才检查呢
    多谢了
      

  3.   

    zhfkiller(杀手) 
    你的方法也是在输入了:1234(没有,)时,还是会提示错误
    还有 1,2F4也可以阿
      

  4.   

    function checkFormat()
    {

    var str = document.forms[0].elements['sformat'].value;
    if(str.indexOf(",")>0)
    { var reg= /^[1-9](\d{1})?(,[1-9]\d{2})?(,[1-9]\d{2})?$/;
    if(!reg.test(str))  //不能为空,可以为空就把 + 号换成 * 
    {
    alert("xx,xxx,xxx 格式!");
    document.forms[0].elements['sformat'].focus();
    return false;
    }
    }
    else if(isNaN(str))
    {
    alert("非数字!");
    } }
      

  5.   

    <script>
    var r=/^[0-9]{1,3}(,[0-9]{3})*$/
    //如果01,123不算就用这句:
    //var r=/^[1-9][0-9]{0,2}(,[0-9]{3})*$/var n=['1,234','12,123,123','01,123','12','12,1234','12,12,12','1-3,4-5']
    var s=''
    for(var i=0;i<n.length;i++)
    s+=n[i]+' : '+r.test(n[i])+'\n'
    alert(s)
    </script>