判断字符串

/**
 * 浏览器脚本函数列表
 * boolean isNumber(numStr)         :判断字符串是否是数值格式
 * boolean isValidString(szStr)     :判断字符串中是否含有非法字符"'/"><"
 * boolean isBlank(szStr)           :判断字符串是否为空字符串(或不包含除空格外的其他字符)
 * String trim(szStr)               :去掉字符串两端的空格
 * boolean isDateStr(ds)            :判断字符串是否为合法的日期格式:YYYY-MM-DD HH:MM:SS
 *                                    或 YYYY-MM-DD 或 HH:MM:SS
 * boolean isDatePart(dateStr)      :判断字符串是否为合法的日期格式:YYYY-MM-DD
 * boolean isTimePart(dateStr)      :判断字符串是否为合法的时间格式:HH:MM:SS
 * boolean chk_email(emailAddress)  :判断邮件地址格式是否合法
 */

/***********************************************************************
 * 判断一个字符串是否是数值格式
 */
function isNumber(numStr){
  return !isNaN(numStr);
}

/***********************************************************************
 * 判断一个字符串中是否含有下列非法字符
 */
voidChar = "'/"><";

function isValidString(szStr){
  for(i = 0 ; i < voidChar.length; i ++){
    aChar = voidChar.substring(i, i + 1);
    if(szStr.indexOf(aChar) > -1){
      return false;
    }
  }
  return true;
}

/***********************************************************************
 * 判断一个字符串是否为空字符串
 */
function isBlank(szStr){
  if(szStr.length < 1){
    return true;
  }

  for(i = 0; i < szStr.length; i ++){
    if(szStr.substring(i, i + 1) != ' '){
      return false;
    }
  }
  return true;
}

/***********************************************************************
 * 去掉一个字符串两端的空格
 */
function trim(szStr){
  //去掉字符串头部的空格
  while(szStr.length > 0){
    if( szStr.substring(0, 1) != ' '){
      break;
    }else{
      szStr = szStr.substring(1);
    }
  }

  //去掉字符串尾部的空格
  while(szStr.length > 0){
    if( szStr.substring(szStr.length - 1, szStr.length) != ' '){
      break;
    }else{
      szStr = szStr.substring(0,szStr.length - 1);
    }
  }
  return szStr;
}

/***********************************************************************
 * 判断一个字符串是否为合法的日期格式:YYYY-MM-DD HH:MM:SS
 * 或 YYYY-MM-DD 或 HH:MM:SS
 */
function isDateStr(ds){
  parts = ds.split(' ');
  switch(parts.length){
    case 2:
      if(isDatePart( parts[0] ) == true && isTimePart( parts[1] )){
        return true;
      }else{
        return false;
      }
    case 1:
      aPart = parts[0];
      if(aPart.indexOf(':') > 0 ){
        return isTimePart(aPart);
      }else{
        return isDatePart(aPart);
      }
    default:
      return false;
  }
}

/***********************************************************************
 * 判断一个字符串是否为合法的日期格式:YYYY-MM-DD
 */
function isDatePart(dateStr){
  var parts;

  if(dateStr.indexOf("-") > -1){
    parts = dateStr.split('-');
  }else if(dateStr.indexOf("/") > -1){
    parts = dateStr.split('/');
  }else{
    return false;
  }

  if(parts.length < 3){
  //日期部分不允许缺少年、月、日中的任何一项
    return false;
  }

  for(i = 0 ;i < 3; i ++){
  //如果构成日期的某个部分不是数字,则返回false
    if(isNaN(parts[i])){
      return false;
    }
  }

  y = parts[0];//年
  m = parts[1];//月
  d = parts[2];//日

  if(y > 3000){
    return false;
  }

  if(m < 1 || m > 12){
    return false;
  }

  switch(d){
    case 29:
      if(m == 2){
      //如果是2月份
        if( (y / 100) * 100 == y && (y / 400) * 400 != y){
          //如果年份能被100整除但不能被400整除 (即闰年)
        }else{
          return false;
        }
      }
      break;
    case 30:
      if(m == 2){
      //2月没有30日
        return false;
      }
      break;
    case 31:
      if(m == 2 || m == 4 || m == 6 || m == 9 || m == 11){
      //2、4、6、9、11月没有31日
        return false;
      }
      break;
    default:

  }

  return true;
}

/***********************************************************************
 * 判断一个字符串是否为合法的时间格式:HH:MM:SS
 */
function isTimePart(timeStr){
  var parts;

  parts = timeStr.split(':');

  if(parts.length < 2){
  //日期部分不允许缺少小时、分钟中的任何一项
    return false;
  }

  for(i = 0 ;i < parts.length; i ++){
  //如果构成时间的某个部分不是数字,则返回false
    if(isNaN(parts[i])){
      return false;
    }
  }

  h = parts[0];//年
  m = parts[1];//月

  if( h < 0 || h > 23){
  //限制小时的范围
    return false;
  }
  if( m < 0 || h > 59){
  //限制分钟的范围
    return false;
  }

  if(parts.length > 2){
    s = parts[2];//日

    if( s < 0 || s > 59){
    //限制秒的范围
      return false;
    }
  }

  return true;
}

function chk_email(email){
  invalid = "";

  if (!email){}
  //invalid = "请输入您的Email地址。";

  else {

    if ( (email.indexOf("@") == -1) || (email.indexOf(".") == -1) )
    invalid += "/n/nEmail地址不合法。应当包含'@'和'.';例如('.com')。请检查后再递交。";

    if (email.indexOf("your email here") > -1)
    invalid += "/n/nEmail地址不合法,请检测您的Email地址,在域名内应当包含'@'和'.';例如('.com')。";

    if (email.indexOf("//") > -1)
    invalid += "/n/nEmail地址不合法,含有非法字符(//)。";

    if (email.indexOf("/") > -1)
    invalid += "/n/nEmail地址不合法,含有非法字符(/)。";

    if (email.indexOf("'") > -1)
    invalid += "/n/nEmail地址不合法,含有非法字符(')。";

    if (email.indexOf("!") > -1)
    invalid += "/n/nEmail地址不合法,含有非法字符(!)。";

    if ( (email.indexOf(",") > -1) || (email.indexOf(";") > -1) )
    invalid += "/n/n只输入一个Email地址,不要含有分号和逗号。";

    if (email.indexOf("?subject") > -1)
    invalid += "/n/n不要加入'?subject=...'。";

  }

  if (invalid == ""){
    return true;
  }else{
    alert("输入的Email可能包含错误:" + invalid);
    return false;
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值