日期:2014-05-16  浏览次数:20502 次

常用javascript数据验证
http://ken_kang.blog.bitscn.com/archives/2007/16499.html




<script language="javascript">
/*
  下列函数返回值说明:
  凡是“Is”开头的函数,如果是"Is"后指明的状态,则返回真,否则为假
  eg. IsNum 如果是数字,返回真
  某些“Check”开头的函数,如果是"Check"后指明的状态,返回假,否则为真
  某些则相反,请具体查看函数说明
  eg. CheckEmpty 如果是空,返回假

  函数名解释:
   当有重载出现时
   NP 表示没有参数(no parameter)
   3P,4P 等表示参数个数(3 parameter,4 parameter)

  ***************************************************************
  函数目录:
  -----------校验输入与工具类--------------------------------------------


  ReplaceDoubleQuotes(strValue) 替换双引号为&quot;
  CheckUnsafeMark(frm)  检查参数frm(form)对象里所有输入控件是否含有非法字符
  CheckKey(KeyCode)  检查输入键是否为0~9,a~z(A~Z),Del,-,.,
  CheckEmptyNP()  校验触发者的值是否为空
  CheckEmpty(CheckCtl,disptext) 校验输入值是否为空
  CheckCardNo(CheckCtl,disptext)  校验一个合法的身份证号码(15,18位)
  Trim(strSource) 清除左右两边空格
  IsEmail(CheckCtl, s) 判断是否是正确的电子邮件地址
  IsPhoneNumber(CheckCtl,s) 判断是否是正确的电话号码
  IsLetter(CheckCtl,s) 判断是否是字母组合
  IsCode(CheckCtl,s) 判断是否是数字编码组合 数字和数字编码的区别:
数字编码允许  000000010 ,不允许诸如: -1290092 ,23.,.3456等类型的值,而数字则认为是真
  IsUserName(CheckCtl,s) 判断是否是正确的用户名 用户名只能由小写英文字母、阿拉伯数字和下划线组成!s=null or s="" 时有默认的提示信息
  IsImageFile(FilePath) 判断是否文件路径中文件是图像文件,路径可以是url或者file:\\

  ------------数字类-----------------------------------------
  Round(i,digit)   取整函数,digid为保留的小数位数
  CheckPositiveInt(CheckCtl,disptext,IsCanZero) 校验一个正整数
  CheckPositiveIntNP()  校验触发者的值是否为一个正整数
  CheckPositiveFloat(CheckCtl,disptext,floatcount) 校验一个合法的大于等于0的浮点数
  CheckPositiveFloatNP()  校验触发者的值是否一个合法的大于等于0的浮点数(2位小数)
  CheckPositiveFloat4P(CheckCtl,disptext,IsCanZero,floatcount) 校验一个合法的大于0的浮点数,是否可以等于零由参数IsCanZero决定
  IsCost(Costctrl) 检查费用输入,小数位为2位,且不能超过SQL Server中数据字段money最大值
  IsNum(txtctl,message,floatcount) 校验是否是数字
  CheckIntRange(CheckCtl,Min, Max,Msg) 校验一个合法的且在规定范围内的整数
  CheckFloatRange(CheckCtl,Min, Max,Msg) 校验一个合法的且在规定范围内的浮点数


  -----------日期类-------------------------------------------
  GetDateDiff(strStart,strEnd) 计算两个日期间隔天数
  CheckYear(strYearInput) 检查输入是否是个有效年份
  AddDay(dateObj,days) 把一个日期加上n天
  CheckDiffDate(BDateCtl,EDateCtl,Msg) 比较两个日期的大小,如果开始日期大于结束日期,返回false;
  DateToStr(dateObj) 将一个日期对象转化为格式yyyy-MM-dd字符串
  DateTimeToStr(dateObj) 将一个日期时间对象转化为形如  yyyy-MM-dd HH:mm:ss 的字符串
  StrToDate(str)  yyyy-MM-dd 的字符串转化为日期对象:
  StrToDateTime(str)   将一个yyyy-MM-dd HH:mm:ss 的字符串转化为日期时间对象
  StrToDateTime6P(year,month,day,hour,minute,second) 将一个参数构成的yyyy-MM-dd HH:mm:ss 的字符串转化为日期时间对象
  IsDate(str) 判断一个字符串是否为有效的日期并且格式是否正确 YYYY-MM-DD
  ----------------------




  *************************************************************
*/


var maxpn=999999999999;
var maxfn=999999999999.9;
var numerrormsg0="请输入0-999999999999之内的数字";
var numerrormsg1="请输入1-999999999999之内的数字";
var overerrormsg="数值超过最大值999999999999";




//替换双引号为&quot;//
function ReplaceDoubleQuotes(strValue){
  return strValue.replace('"','&quot;');
}

//
//检查FORM里所有输入控件是否含有非法字符//
function CheckUnsafeMark(frm)
{
for(var i=0;i<frm.length;i++)
{
  var edit = frm.item(i);

  var stag = edit.tagName;
  if (edit.type) {
   var stype = edit.type;
   if ( (stype.toLowerCase()!="password") && (stype.toLowerCase() != "text") )
   {
 &n