因为要验证的字符串中 需要包含固定的相关中文汉字
所以 要先取得这些汉字的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;
}
所以 要先取得这些汉字的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;
}
本文介绍了一个用于验证和转换特定格式日期字符串的JavaScript函数。该函数可以处理包含中文汉字“年”和“月”的日期字符串,并能根据指定类型返回符合报表要求的日期格式。

1290

被折叠的 条评论
为什么被折叠?



