我觉得check中只要稍微写一下类型的容错判断,没有必要面面具到,具体出错可以在后台逻辑层抛出异常,因为表现层不可能把错误屏蔽干净,一家之言

解决方案 »

  1.   

    function isletter(c)
    {
      if (((c>='a') && (c<='z')) || ((c>='A') && (c<='Z'))) return true;
      else return false;
    }
    function isnumber(c)
    {
      if ((c>='0') && (c<='9'))  return true;
      else return false;
    }function checkLoginAccount(s)
    {
      for (i=0; i<s.length; i++)
      {
        n = s.substr(i, 1)
        if (!(isletter(n) || isnumber(n) || (n=='_')))
        {
          return false;
        }
      }
      return true;
    }
    function check_use()
    {
      var LoginAccount=document.use.txtLoginAccount.value;
      if(!checkLoginAccount(LoginAccount))
      {
        alert("用户名只能由字母(a-z A-Z)、数字(0-9)和下划线(_)构成!");
        document.use.txtLoginAccount.focus();
        document.use.txtLoginAccount.select();
        return;
      }
    }差不多就这些了,你把它保存在一个js文件中,然后在使用的地方链接,再调用check_use()就可以了。
      

  2.   

    少了一项,
    在最后一个大括号里面要加上一句:document.use.submit();
    这样才能把表单提交。
      

  3.   

    从业务逻辑上分析数据的输入格式就可以了..
    对于你说的"比如不能输入查询数据库的sql语句或者javascript、php的脚本等!"
    这些问题不在考虑之列..
    一个设计良好的系统应该支持存储所有符合应用要求的数据,而不是去屏蔽此类数据..比如,CSDN就支持输入<SCRIPT>\"\\'</SCRIPT>这样的字符和<%=xxxx%>这样的数据, 且能正常显示,为什么???
    因为他们在存储的时候除了对存入字符中的'进行了转义处理外没有做任何附加处理,这样存入数据库的是原始字符编码,只是在输出的时候进行了格式化处理..
      

  4.   

    应该使用参数查询而不是用参数去拼一句sql出来查询,不然总有办法叫你死的很难看……