正则表达式 验证 ****年**月
因为要验证的字符串中 需要包含固定的相关中文汉字
所以 要先取得这些汉字的ASCII码表示
然后才能利用这些 构建验证规则
示例如下
所以 要先取得这些汉字的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;
}
* 函數名稱: 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;
}
posted on 2006-12-14 13:00 freeliver54 阅读(1527) 评论(1) 编辑 收藏 举报