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

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

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

None.gif
function  GetReportDate(strDate,reportDateType)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
var paraDateType = reportDateType.trim().toLowerCase();    
InBlock.gif    
//判断 reportDateType 是否输入正确
InBlock.gif
    var TypeEnum = "month,halfmonth";
InBlock.gif    
if ( TypeEnum.indexOf(paraDateType) == -1 ) 
InBlock.gif        
return false;            
InBlock.gif
InBlock.gif    
//判断 strDate 的格式 是否与reportDateType相匹配
InBlock.gif
    var paraDate = strDate.trim();    
InBlock.gif    
var regStr,regResult;
InBlock.gif    
var strLength = paraDate.length;
InBlock.gif    
//对于 Month 类的输入日期
InBlock.gif
    if(paraDateType == "month")
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
//       var yearASCII = escape("年");//得到 “年” 的ASCII码 \u5E74
InBlock.gif//
       var monthASCII = escape("月"); 得到 “月” 的ASCII码 \u6708
ExpandedSubBlockStart.gifContractedSubBlock.gif
         regStr = /\ddot.gif{4}(\u5E74)\ddot.gif{1,2}(\u6708)/;
ExpandedSubBlockEnd.gif    }
    
InBlock.gif    regResult 
= regStr.test(paraDate);    
InBlock.gif    
if!regResult ) 
InBlock.gif        
return ;
InBlock.gif        
InBlock.gif    
//进行相关转换
InBlock.gif
    var returnDate ,tmpYear,tmpMonth,tmpDay;    
InBlock.gif
InBlock.gif    
// Month 类的输入日期
InBlock.gif
    if(paraDateType == "month")
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        tmpYear 
= paraDate.substr(0,4);
InBlock.gif        tmpMonth 
= paraDate.substr(5,strLength - 6);
InBlock.gif        
if(tmpMonth > 12 ||tmpMonth < 1)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return;
ExpandedSubBlockEnd.gif        }

InBlock.gif        
else
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
if(tmpMonth.length == 1)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                tmpMonth 
= "0" + tmpMonth;
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

InBlock.gif        
//当月的16号
InBlock.gif
        returnDate = tmpYear + tmpMonth + "16";
ExpandedSubBlockEnd.gif    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值