L@_@K
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD> <BODY>
  <input id="txtNum" /> 
<input type="button" onclick="isNum()" /> 
<script type="text/javascript"> function isNum(){ 
    var s = document.getElementById("txtNum").value; 
    var reg = /^(0?|\d+)$/; 
    if(reg.test(s)) 
        alert("OK");
else
alert("NO");

</script>  </BODY>
</HTML>

解决方案 »

  1.   

    <input id="txtNum" />
    <input type="button" onclick="isNum()" />
    <script type="text/javascript">function isNum(){
        var s = document.getElementById("txtNum").value;
        var reg = /^0$/;
        var reg2 = /^[1-9]\d*$/;
        if(reg.test(s) || reg2.test(s)){
            alert("OK");
            return;
        }
        alert("NO")
    }
    </script>我这样写是正确的,我现在的疑惑是,为什么我用“|”把reg 和reg2 合成 var reg = /^(0)|([1-9]\d*)$/; ,它就错误了呢???
      

  2.   

    var reg = /^(?:0|[1-9]\d*)$/;