易码技术论坛

 找回密码
 加入易码
搜索
查看: 210152|回复: 4

[源码] [C#]一个小东西--无敌校验函数

[复制链接]
发表于 2007-1-27 21:36:47 | 显示全部楼层
轻轻的,我走了
发表于 2007-1-27 22:16:27 | 显示全部楼层
可惜我不懂C#啊,哎~~
发表于 2007-1-27 23:13:41 | 显示全部楼层
又见拼接字符串~
发表于 2007-2-2 01:28:43 | 显示全部楼层
个人更倾向于JS与后台两者都进行输入验证,另外.NET自带的验证控件也可以用来偷懒一用吖。
 楼主| 发表于 2007-1-27 21:23:08 | 显示全部楼层 |阅读模式
原来一直写JavaScript来校验输入,今天终于花了一点时间写了一个通用的类.
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. public partial class _Default : System.Web.UI.Page
  11. {
  12.    protected void Page_Load(object sender, EventArgs e)
  13.    {
  14.       if (IsPostBack)
  15.         return;
  16.       FormCheck.Validate(Page, txtUserName, "用户名", FormCheck.CheckType.NotNull);
  17.       FormCheck.Validate(Page, txtPassword, "密码", FormCheck.CheckType.MinLength, 6);
  18.       FormCheck.Validate(Page, txtBirthDay, "出生日期", FormCheck.CheckType.Date);
  19.       FormCheck.Validate(Page, txtAge, "年龄", FormCheck.CheckType.RangeInt, 0, 99);
  20.       FormCheck.Validate(Page, txtPrice, "价格", FormCheck.CheckType.MinNumber, 0);
  21.       FormCheck.Validate(Page, txtNumber, "数量", FormCheck.CheckType.MinInt, 0);
  22.    }
  23. }
复制代码
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. public static class FormCheck
  11. {
  12.    /// <summary>
  13.    /// 需要校验的字段类型
  14.    /// </summary>
  15.    public enum CheckType
  16.    {
  17.       /// <summary>
  18.       /// 字符串
  19.       /// </summary>
  20.       NotNull,
  21.       /// <summary>
  22.       /// 日期
  23.       /// </summary>
  24.       Date,
  25.       /// <summary>
  26.       /// 数字
  27.       /// </summary>
  28.       Number,
  29.       /// <summary>
  30.       /// 整数
  31.       /// </summary>
  32.       Int,
  33.       /// <summary>
  34.       /// 字符串,最大长度
  35.       /// </summary>
  36.       MaxLength,
  37.       /// <summary>
  38.       /// 字符串,长度
  39.       /// </summary>
  40.       Length,
  41.       /// <summary>
  42.       /// 字符串,最小长度
  43.       /// </summary>
  44.       MinLength,
  45.       /// <summary>
  46.       /// 整数,最大值
  47.       /// </summary>
  48.       MaxInt,
  49.       /// <summary>
  50.       /// 整数,范围值
  51.       /// </summary>
  52.       RangeInt,
  53.       /// <summary>
  54.       /// 整数,最大值
  55.       /// </summary>
  56.       MinInt,
  57.       /// <summary>
  58.       /// 数字,最大值
  59.       /// </summary>
  60.       MaxNumber,
  61.       /// <summary>
  62.       /// 数字,范围值
  63.       /// </summary>
  64.       RangeNumber,
  65.       /// <summary>
  66.       /// 数字,最小值
  67.       /// </summary>
  68.       MinNumber
  69.    }
  70.    /// <summary>
  71.    /// 设置提交时校验
  72.    /// </summary>
  73.    /// <param name="page">页面</param>
  74.    /// <param name="txt">控件</param>
  75.    /// <param name="type">类型</param>
  76.    /// <param name="fieldName">字段名</param>
  77.    /// <param name="parms">参数列表</param>
  78.    public static void Validate(Page page, TextBox txt, string fieldName, CheckType type, params int[] parms)
  79.    {
  80.       //注册校验脚本
  81.       if (!page.ClientScript.IsClientScriptIncludeRegistered("FormCheck"))
  82.         page.ClientScript.RegisterClientScriptInclude("FormCheck", "FormCheck.js");
  83.       //添加校验事件
  84.       if (!page.ClientScript.IsOnSubmitStatementRegistered(txt.ClientID))
  85.       {
  86.         string str = string.Empty;
  87.         foreach (int parm in parms)
  88.            str += ",&#39;" + parm.ToString() + "&#39;";
  89.         str = "if(!check" + type.ToString() + "(getControl(&#39;" + txt.ClientID + "&#39;).value" + str + ",&#39;" + fieldName + "&#39;)){getControl(&#39;" + txt.ClientID + "&#39;).focus();return false;}";
  90.         page.ClientScript.RegisterOnSubmitStatement(page.GetType(), txt.ClientID, str);
  91.       }
  92.    }
  93. }
复制代码
  1. // JScript 文件
  2. String.prototype.trim= function()  
  3. {  
  4.    // 用正则表达式将前后空格  
  5.    // 用空字符串替代。  
  6.    return this.replace(/(^\s*)|(\s*$)/g, "");  
  7. }
  8. function getControl(ID)
  9. {
  10.    return document.getElementById(ID);
  11. }
  12. function checkNotNull(inString,fieldName)
  13. {
  14.    if(inString==null)
  15.    {
  16.       alert(fieldName +"必须输入。");
  17.       return false;
  18.    }
  19.   
  20.    if(inString.trim().length==0)
  21.    {
  22.       alert(fieldName +"必须输入。");
  23.       return false;
  24.    }
  25.    return true;
  26. }
  27. function checkDate(inString,fieldName)
  28. {
  29.    if(!checkNotNull(inString,fieldName)) return false;
  30.    var tempDate;
  31.    var a=new Date(inString);
  32.    var y=a.getFullYear();
  33.    var m=a.getMonth()+1;
  34.    var d=a.getDate();
  35.    var myday=y + "/" + m + "/" + d
  36.    if (myday!=inString)
  37.    {
  38.    alert("请为"+ fieldName +"输入一有效日期(yyyy/m/d)。");
  39.    return false;
  40.    }
  41.    return true;
  42. }
  43. function checkNumber(inString,fieldName)
  44. {
  45.    if(!checkNotNull(inString,fieldName)) return false;
  46.    if(isNaN(inString))
  47.    {
  48.    alert("请为"+ fieldName +"输入一有效数字。");
  49.    return false;
  50.    }
  51.    return true;
  52. }
  53. function checkInt(inString,fieldName)
  54. {
  55.    if(!checkNumber(inString,fieldName)) return false;
  56.    if(inString.indexOf(&#39;.&#39;)>=0)
  57.    {
  58.       alert("请为"+ fieldName +"输入一有效整数。");
  59.       return false;
  60.    }
  61.    return true;   
  62. }
  63. function checkMaxLength(inString,inLength,fieldName)
  64. {
  65.    if(!checkNotNull(inString,fieldName)) return false;
  66.    if(inString.length>inLength)
  67.    {
  68.    alert(fieldName +"的长度必须小于" + inLength +"位。");
  69.    return false;
  70.    }
  71.    return true;
  72. }
  73. function checkLength(inString,inLength,fieldName)
  74. {
  75.    if(!checkNotNull(inString,fieldName)) return false;
  76.    if(inString.length==inLength)
  77.    {
  78.    alert(fieldName +"的长度必须等于" + inLength +"位。");
  79.    return false;
  80.    }
  81.    return true;
  82. }
  83. function checkMinLength(inString,inLength,fieldName)
  84. {
  85.    if(!checkNotNull(inString,fieldName)) return false;
  86.    if(inString.length<inLength)
  87.    {
  88.    alert(fieldName +"的长度必须大于" + inLength +"位。");
  89.    return false;
  90.    }
  91.    return true;
  92. }
  93. function checkRangeInt(inString,inMinValue,inMaxValue,fieldName)
  94. {
  95.    if(!checkInt(inString,fieldName)) return false;
  96.    if(parseInt(inString)<parseInt(inMinValue) ||  parseInt(inString)>parseInt(inMaxValue) )
  97.    {
  98.    alert(fieldName +"必须输入一在" + inMinValue+"于"+inMaxValue+"之间的整数。");
  99.    return false;
  100.    }
  101.    return true;
  102. }
  103. function checkMaxInt(inString,inValue,fieldName)
  104. {
  105.    if(!checkInt(inString,fieldName)) return false;
  106.    if(parseInt(inString)>parseInt(inValue))
  107.    {
  108.    alert(fieldName +"必须输入一小于" + inValue +"的整数。");
  109.    return false;
  110.    }
  111.    return true;
  112. }
  113. function checkMinInt(inString,inValue,fieldName)
  114. {
  115.    if(!checkInt(inString,fieldName)) return false;
  116.    if(parseInt(inString)<parseInt(inValue))
  117.    {
  118.    alert(fieldName +"必须输入一大于" + inValue +"的整数。");
  119.    return false;
  120.    }
  121.    return true;
  122. }
  123. function checkMaxNumber(inString,inValue,fieldName)
  124. {
  125.    if(!checkNumber(inString,fieldName)) return false;
  126.    checkNumber(inString,fieldName);
  127.    if(parseFloat(inString)>parseFloat(inValue))
  128.    {
  129.    alert(fieldName +"必须输入一小于" + inValue +"的数字。");
  130.    return false;
  131.    }
  132.    return true;
  133. }
  134. function checkMinNumber(inString,inValue,fieldName)
  135. {
  136.    if(!checkNumber(inString,fieldName)) return false;
  137.    if(parseFloat(inString)<parseFloat(inValue))
  138.    {
  139.    alert(fieldName +"必须输入一大于" + inValue +"的数字。");
  140.    return false;
  141.    }
  142.    return true;
  143. }
  144. function checkRangeNumber(inString,inMinValue,inMaxValue,fieldName)
  145. {
  146.    if(!checkNumber(inString,fieldName)) return false;
  147.    if(parseFloat(inString)>parseFloat(inMaxValue) || parseFloat(inString)<parseFloat(inMinValue))
  148.    {
  149.    alert(fieldName +"必须输入一在" + inMinValue+"于"+inMaxValue+"之间的数字。");
  150.    return false;
  151.    }
  152.    return true;
  153. }
复制代码

FormCheck.rar

5 KB, 下载次数: 171

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-25 14:19 , Processed in 0.012939 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表