要把数字用正则或者isNaN剔出来
<script language=javascript>
alert(typeof(1))
alert(typeof('aa'))
</script>

解决方案 »

  1.   

    <script language=javascript>
    function test(s)
    {
       alert(typeof(s));
    }
    </script><input type=text onblur="test(this.value)">你试一下?都是String类型
      

  2.   

    上面的是说JS中的类型,
    文本框的值在JS中全部是String存在的,
    如果想这样做的话,比较麻烦,稍等下,写个程序
      

  3.   

    不过这里没有考虑到特殊字符和符合等问题
    <script language=javascript>
    function test(s)
    {
       if(s=="")
       {
        return "0";
        }
       if(/^\d+$/.test(s))
       {
        return "1"
       }
       if(/^[a-z]+$/i.test(s))
       {
        return "2"
       }
       if(/^[\u4e00-\u9fa5]+$/.test(s))
       {
        return "3"
       }
       if(/^[a-z\u4e00-\u9fa5]+$/i.test(s))
       {
        return "4"
       }
       if(/^[a-z0-9]+$/i.test(s))
       {
        return "5"
       }
       if(/^[\u4e00-\u9fa50-9]+$/.test(s))
       {
        return "6"
       }
       if(/^[\u4e00-\u9fa50-9a-z]+$/i.test(s))
       {
        return "7"
       }
    }
    </script><input type=text onblur="alert(test(this.value))">
      

  4.   

    <script language="JavaScript">
    function _0009(str)
    {
        /^(?:(\d+)|([a-z]+)|([\u4e00-\u9fa5]+)|([\u4e00-\u9fa5a-z]+)|([a-z\d]+)|([\u4e00-\u9fa5\d]+)|([\w\W]+))$/i.exec(str);
        if (RegExp.$1 != "") return 1;
        else if (RegExp.$2 != "") return 2;
        else if (RegExp.$3 != "") return 3;
        else if (RegExp.$4 != "") return 4;
        else if (RegExp.$5 != "") return 5;
        else if (RegExp.$6 != "") return 6;
        else if (RegExp.$7 != "") return 7;
        else return 0;
    }
    var arr = ["", "123", "abc", "一二三", "abc一二三", "abc123", "一二三123", "abc一二三123"];
    for(var i in arr)
    {
        alert(arr[i] + " -> " + _0009(arr[i]));
    }
    </script>