正则表达式 验证 ****年**月

因为要验证的字符串中 需要包含固定的相关中文汉字
所以 要先取得这些汉字的ASCII码表示
然后才能利用这些 构建验证规则
示例如下

/*--------------------------------------------------
* 函數名稱: GetReportDate
* 目    的: 得到符合报表要求的相关日期
* 參    數: 
*           strDate       :日期字符串
*           reportDateType:可选值 Month ,HalfMonth ,
*
*       Eg: GetReportDate("2006年12月","Month") = 20061216
*           GetReportDate("2006年12月上半月","HalfMonth") = 20061201
* xx. YYYY/MM/DD   VER     AUTHOR      COMMENTS
*  1. 2006/12/13   1.00    Free        Create
------------------------------------------------------
*/

function  GetReportDate(strDate,reportDateType)
{
    
var paraDateType = reportDateType.trim().toLowerCase();    
    
//判断 reportDateType 是否输入正确
    var TypeEnum = "month,halfmonth";
    
if ( TypeEnum.indexOf(paraDateType) == -1 ) 
        
return false;            

    
//判断 strDate 的格式 是否与reportDateType相匹配
    var paraDate = strDate.trim();    
    
var regStr,regResult;
    
var strLength = paraDate.length;
    
//对于 Month 类的输入日期
    if(paraDateType == "month")
    
{
//       var yearASCII = escape("年");//得到 “年” 的ASCII码 /u5E74
//
       var monthASCII = escape("月"); 得到 “月” 的ASCII码 /u6708
         regStr = //d{4}(/u5E74)/d{1,2}(/u6708)/;
    }
    
    regResult 
= regStr.test(paraDate);    
    
if!regResult ) 
        
return ;
        
    
//进行相关转换
    var returnDate ,tmpYear,tmpMonth,tmpDay;    

    
// Month 类的输入日期
    if(paraDateType == "month")
    
{
        tmpYear 
= paraDate.substr(0,4);
        tmpMonth 
= paraDate.substr(5,strLength - 6);
        
if(tmpMonth > 12 ||tmpMonth < 1)
        
{
            
return;
        }

        
else
        
{
            
if(tmpMonth.length == 1)
            
{
                tmpMonth 
= "0" + tmpMonth;
            }

        }

        
//当月的16号
        returnDate = tmpYear + tmpMonth + "16";
    }

    
    
//返回结果
    return returnDate;  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值