因为要验证的字符串中 需要包含固定的相关中文汉字所以 要先取得这些汉字的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; }