分享

javascript进行字符串校验

 barbarossia 2006-09-01

function judge(){
if(document.forms[0].target.value==""){
alert("请输入仓库号");
document.forms[0].target.focus();
return false;}

if(document.forms[0].title.value==""){
alert("请输入信息标题");
document.forms[0].title.focus();
return false;}
return true;
}
 
 /** 输入字符的确认isCharsInBag(s, bag) 输入参数均为字符串 
 *  此函数实现判断前者是否包含后者的任意字符,可以扩展。
 */
 
 function isCharsInBag (s, bag)
{
var i,c;
for (i = 0; i < s.length; i++)
{
c = s.charAt(i);//字符串s中的字符
if (bag.indexOf(c) > -1)
return c;
}
return "";
}
 
/** 输入字符的确认ischinese(s) 输入参数为字符串 
 *  此函数实现限制只能中文输入的方法。如果是,函数返回true,否则,函数返回false。
 */
function ischinese(s)
{
var errorChar;
var badChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789><,[]{}?/+=|\\‘\":;~!#$%()`";
errorChar = isCharsInBag( s, badChar)
if (errorChar != "" )
{
report=report+"请重新输入中文\n";
return false;
}
return true;
}

//********函数:gGetDateTimeStr(iChoice,oDate)********
//输入参数:
// iChoice——int,转换标志
// oDate——Date对象,日期时间
//返回值:
// string,日期时间串。
//说明:
// 将Date对象转换为日期时间串。iChoice定义如下:
// 0=日期,格式:"yyyy-mm-dd"。
// 1=时间,格式:"hh:mm:ss"。
// 2=日期时间,格式:"yyyy/mm/dd hh:mm:ss"。
// 100=日期,格式:"yyyy年mm月dd日"。
// 101=时间,格式:"hh时mm分ss秒"。
// 102=日期时间,格式:"yyyy年mm月dd日 hh时mm分ss秒"。
function gGetDateTimeStr(iChoice,oDate)
{
 //应该对oDate进行校验
 var yy=oDate.getFullYear(), mm=oDate.getMonth()+1, dd=oDate.getDate();
 var hh=oDate.getHours(), nn=oDate.getMinutes(), ss=oDate.getSeconds();
 if(mm<10) mm="0"+mm;
 if(dd<10) dd="0"+dd;
 if(hh<10) hh="0"+hh;
 if(nn<10) nn="0"+nn;
 if(ss<10) ss="0"+ss;
 if(iChoice==0) return (yy+"-"+mm+"-"+dd);
 if(iChoice==1) return (hh+":"+nn+":"+ss);
 if(iChoice==2) return (yy+"/"+mm+"/"+dd+" "+hh+":"+nn+":"+ss);
 if(iChoice==100) return (yy+"年"+mm+"月"+dd+"日");
 if(iChoice==101) return (hh+"时"+nn+"分"+ss+"秒");
 if(iChoice==102) return (yy+"年"+mm+"月"+dd+"日"+" "+hh+"时"+nn+"分"+ss+"秒");
 return "";


/** 日期的确认isDate(theStr)   thrStr格式为:"yyyy-mm-dd"
 *  此函数保证域的数据是一个有效的日期。如果输入是一个有效的日期,函数返回true,否则,函数返回false。
 */
function isDate(theStr)
{
 var i1=theStr.indexOf(‘-‘);
    var i2=theStr.lastIndexOf(‘-‘);
  if (i1==i2){return (false);}
 else { var yy=thrStr.substring(0,i1);
   var mm=thrStr.substring(i1+1,i2);
   var dd=thrStr.substring(i2+1,theStr.length);
   var maxday=31;
   if(isInt(mm)==false||isInt(dd)==false||isInt(yy)==false) {return (false);}
   else if(yy.length<4) {return (false);}
   else if (!isBetween(mm,1,12)) {return (false);}
   else if (mm==4||mm==6||mm==9||mm==11) maxday=30;
   else if (mm==2){
   if (y%4>0) maxday=28
   else if (y%100==0&&y%400>0) maxday=28;
   else maxday=29;}
   if (isBetween(dd,1,maxday)==false){return (false);}
   else {return (true);}
   }
 
}

/** 日期的确认isTime(theStr)   thrStr格式:"hh:mm:ss"
 *  此函数保证域的数据是一个有效的时间。如果输入是一个有效的时间,函数返回true,否则,函数返回false。
 */
function isTime(theStr)
{
 var i1= theStr.indexOf(‘:‘);
  if((i1<1)||(i1>2)){return (false);}
 else  {var hh=thrStr.substring(0,i1);
   var mm=thrStr.substring(i1+1,i2);
   var ss=thrStr.substring(i2+1,theStr.length);
   if(isInt(hh)==false||(hh.length<1)||(hh.length>2)) {return (false);}
  else if(isInt(hh)==false||(hh.length<1)||(hh.length>2)) {return (false);}
  else if(isInt(hh)==false||(hh.length<1)||(hh.length>2)) {return (false);}
   else if (isBetween(hh,0,23)||isBetween(mm,0,59)||isBetween(ss,0,59)) {return (false);}
 else {return (true);}
 }
}

/** 数字的确认isDigit(theNum)
 *  此函数保证域的数据是一个有效的数字。如果输入是一个有效的数字,函数返回true,否则,函数返回false。
 */
function isDigit(theNum)
{
 var theMask = ‘0123456789‘;
 if (isEmpty(theNum))
 {
  return(false);
 }
 else if (theMask.indexOf(theNum) == -1)
 {
  return(false);
 }
 return(true);
}

/** 检查输入是否为空isEmpty(str)
 *  此函数保证域的数据是否为空。如果是空值,函数返回true,否则,函数返回false。
 */
function isEmpty(str)
{
 
 if ((str==null) || (str.length==0))
 {
  return(true);
 }
 else
 {
  return(false);
 }
}
/** 检查输入是否为整数isInt(theStr)
 *  此函数保证域的数据是一个有效的整数。如果输入是一个有效的整数,函数返回true,否则,函数返回false。
 */
function isInt(theStr)
{
 var flag = true;
 if (isEmpty(theStr))
 {
  flag = false;
 }
 else
 {
  for (var i=0; i<theStr.length; i++)
  {
   if (isDigit(theStr.substring(i, i+1)) == false)
   {
    flag = false;
    break;
   }
  }
 }
 return(flag);
}

/** 检查输入是否为有符号整数isSignInt(theStr)
 *  此函数保证域的数据是一个有效的有符号整数。如果输入是一个有效的有符号整数,函数返回true,否则,函数返回false。
 */
function isSignInt(theStr)
{
 var flag = true;
 var sign = ‘+-‘;
 if (isEmpty(theStr))
 {
  flag = false;
 }
 else
 {
  var the1st = theStr.substring(0, 1);
  if (sign.indexOf(the1st) == -1)
  {
   for (var i=0; i<theStr.length; i++)
   {
    if (isDigit(theStr.substring(i, i+1)) == false)
    {
     flag = false;
     break;
    }
   }
  }
  else
  {
   for (var i=1; i<theStr.length; i++)
   {
    if (isDigit(theStr.substring(i, i+1)) == false)
    {
     flag = false;
     break;
    }
   }
  }
 }
 return(flag);
}

/** 检查输入是否为实数isReal(theStr, decLen)
 *  此函数保证域的数据是一个有效的实数。如果输入是一个有效的实数,函数返回true,否则,函数返回false。
 */
function isReal(theStr, decLen)
{
 var dot1st = theStr.indexOf(‘.‘);
 var dot2nd = theStr.lastIndexOf(‘.‘);
 var OK = true;
 if (isEmpty(theStr))
 {
  return(false);
 }
 if (dot1st == -1)
 {
  if (!isSignInt(theStr))
  {
   return(false);
  }
  else
  {
   return(true);
  }
 }
 else if (dot1st != dot2nd)
 {
  return(false);
 }
 else if (dot1st == 0)
 {
  return(false);
 }
 else
 {
  var intPart = theStr.substring(0, dot1st);
  var decPart = theStr.substring(dot2nd+1);
  if (decPart.length>decLen)
  {
   return(false);
  }
  else if ((!isSignInt(intPart)) || (!isInt(decPart)))
  {
   return(false);
  }
  else if (isEmpty(decPart))
  {
   return(false);
  }
  else
  {
   return(true);
  }
 }
}

/** 检查页面填写是否正确checkForm(Frm)
 *  此函数保证页面每个域的均不为空,如果符合标准返回true,否则,返回false。
 *  对此函数可以扩展
 */
function checkForm(Frm)
{
 var flag = true;
 for (var i=0; i<=24; i++)
 {
  if (isEmpty(Frm.elements[i].value))
  {
   alert("字段不能为空,请输入相关信息!");
   Frm.elements[i].focus();
   flag = false;
   return (flag);
  }
 }
 return (flag);
}

/** ---------------
 *  此函数保证日期填写时,在日期可选的情况下,判断不同月份的天数,如果符合标准返回true,否则,返回false。
 *  对此函数可以扩展
 */
function isValidDate( year, month, day )
{
   year  = parseInt(year,10);
   month = parseInt(month,10);
   day   = parseInt(day,10);
   if (( month==4) || (month==6) || (month==9) || (month==11) )
   { if (( day < 1) || (day > 30) )
     { alert( "日期应为1 - 30之间" );
       return (false);
     }
   }
   else
   { if ( month!=2 )
     { if ( (day < 1) || (day > 31 ))
       {  alert( "日期应为1 - 31之间" );
          return (false);
       }
     }
     else
     { // month == 2
       if ( ( year % 100 ) != 0 && (year % 4 == 0) || ( year % 100 ) == 0 && ( year % 400) == 0 )
       { if ( day > 29 )
         {  alert( "日期应为1 - 29之间" );
            return (false);
         }
       }
       else
       { if ( day > 28 )
         { alert( "日期应为1 - 28之间" );
           return (false);
         }
       }
     }
   }
 return (true);
}
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多