var week = ['日', '一', '二', '三', '四', '五', '六']
// 判断手机号
function IsTelPhoneNumber(Tel){
if(!(/^1\d{10}$/.test(Tel))){
return false;
}
return true
}
// 计算孕周
function calculateGestationalWeeks(time){
if(time == 0){
return 0
}
var current = new Date()
return parseInt((current.getTime() - time) / (60 * 60 * 24 * 7 * 1000))
}
// 计算孕周-天
function calculateGestationalWeekDay(time){
if(time == 0){
return 0
}
var current = new Date()
return parseInt((current.getTime() - time) / (60 * 60 * 24 * 1000)) % 7
}
// 计算2天的时间间隔
function calculateTimeInterval(before,later){
var laterDate = new Date(later)
var beforeDate = new Date(before)
// 去掉多余的时分秒
laterDate = new Date(laterDate.getFullYear(),laterDate.getMonth(),laterDate.getDate())
beforeDate = new Date(beforeDate.getFullYear(), beforeDate.getMonth(), beforeDate.getDate())
var timestamp = laterDate.getTime() - beforeDate.getTime()
return parseInt(timestamp / (60 * 60 * 24 * 1000))
}
// 获取危机颜色值 传入危急值
function getRiskColorWithLevel(level){
// 健康 轻度 中度 重度 严重
var color = ''
if(level&8){
return '#d888d3'
}
if(level&4){
return '#f67a65'
}
if(level&1){
return '#ff975f'
}
if(level&2){
return '#ffc55f'
}
if(level&16){
return '#4ec18f'
}
return ''
}
// 首页获取危机颜色值与图片 传入危急值
function healthRating_getRiskInfo(highRisk){
var level = parseInt(highRisk)
var highRiskLevel = [// 高危等级颜色
{name:'重度风险',
color:'page3_-image_zhongdu_r_n@3x.png'},{name:'中度风险',
color:'page3_-image_zhongdu_o_n@3x.png'},{name:'轻度风险',
color:'page3_-image_qingdu_y_n@3x.png'},{name:'严重风险',
color:'page3_-image_yanzhong_p_n@3x.png'},{name:'健康',
color:'page3_-image_jiankang_g_n@3x.png'}]
// 健康 轻度 中度 重度 严重
if(level&8){
return highRiskLevel[3]
}
if(level&4){
return highRiskLevel[0]
}
if(level&1){
return highRiskLevel[1]
}
if(level&2){
return highRiskLevel[2]
}
if(level&16){
return highRiskLevel[4]
}
return highRiskLevel[4]
}
function home_getRiskInfo(level){
var color = [{image:'../../source/imageSource/page1_yunqi_green_Image@3x.png',color:'#43bf67'},{image:'../../source/imageSource/page1_yunqi_yellow_Image_n@3x.png',color:'#ffb42e'},{image:'../../source/imageSource/page1_yunqi_orange_Image_n@3x.png',color:'#ff7f29'},{image:'../../source/imageSource/page1_yunqi_red_Image_n@3x.png',color:'#ff6969'},{image:'../../source/imageSource/page1_yunqi_purple_Image_n@3x.png',color:'#c65dbc'}]
// 健康 轻度 中度 重度 严重
if(level&8){
return color[4]
}
if(level&4){
return color[3]
}
if(level&1){
return color[2]
}
if(level&2){
return color[1]
}
if(level&16){
return color[0]
}
return color[0]
}
function DateAdd(interval,number,date)
{
/*
* 功能:实现Script的DateAdd功能.
* 参数:interval,字符串表达式,表示要添加的时间间隔.
* 参数:number,数值表达式,表示要添加的时间间隔的个数.
* 参数:date,时间对象.
* 返回:新的时间对象.
* var now = new Date();
* var newDate = DateAdd( "d ",5,now);
*--------------- DateAdd(interval,number,date) -----------------
*/
switch(interval)
{
case "y " : {
date.setFullYear(date.getFullYear()+number);
return date;
break;
}
case "q " : {
date.setMonth(date.getMonth()+number*3);
return date;
break;
}
case "m " : {
date.setMonth(date.getMonth()+number);
return date;
break;
}
case "w " : {
date.setDate(date.getDate()+number*7);
return date;
break;
}
case "d " : {
date.setDate(date.getDate()+number);
return date;
break;
}
case "h " : {
date.setHours(date.getHours()+number);
return date;
break;
}
case "m " : {
date.setMinutes(date.getMinutes()+number);
return date;
break;
}
case "s " : {
date.setSeconds(date.getSeconds()+number);
return date;
break;
}
default : {
date.setDate(date.getDate()+number);
return date;
break;
}
}
}
function getMonthAllDayWithDate(date){
//d.getMonth()+1代表下个月,月份索引从0开始,即当前月为6月时,getMonth()返回值为5,创建日期时同理
//此处构造的日期为下个月的第0天,天数索引从1开始,第0天即代表上个月的最后一天
var days = []
var curMonthDays = new Date(date.getFullYear(), (date.getMonth() + 1), 0).getDate()
for(var i = 1;i<=curMonthDays;i++){
days.push(new Date(date.getFullYear(), date.getMonth(),i))
}
return days
}
// 保留一位小数
function toDecimal(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return;
}
f = Math.round(x * 100) / 100;
return f;
}
// 获取最近一周
function getLatestWeek() {
var weekList = []
var today = new Date()
// 倒序
for (var i = 6;i >= 0;i--){
var day = new Date(today.getFullYear(), today.getMonth(), today.getDate() - i)
var dayInfo = {}
// dayInfo.year = day.getFullYear()
// dayInfo.month = day.getMonth() + 1
dayInfo.date = day.getDay()
// if(dayInfo.date == 0){
// dayInfo.date = '日'
// }
if(i == 0){
weekList.push('今天')
} else {
weekList.push('周' + week[dayInfo.date])
}
}
return weekList;
}
function getLatestMonth() {
var list = []
var today = new Date()
// 倒序
for (var i = 29; i >= 0; i--) {
var day = new Date(today.getFullYear(), today.getMonth(), today.getDate() - i)
var dayInfo = {}
dayInfo.year = day.getFullYear()
dayInfo.month = day.getMonth() + 1
dayInfo.day = day.getDate()
list.push(dayInfo)
}
return list;
}
/**
* 检查身份证合法
* @param str_idCard sex为human man
* @returns {boolean}
*/
function checkIdCard(str_idCard, sex) {
str_idCard = str_idCard || String(this);
var check = function () {
var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
var varArray = new Array();
var lngProduct = 0;
var intCheckDigit;
var intStrLen = str_idCard.length;
var idNumber = str_idCard;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for (var i = 0; i < intStrLen; i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
var date8 = idNumber.substring(6, 14);
if (!/^[0-9]{8}$/.test(date8)) {
return false;
}
var year, month, day;
year = date8.substring(0, 4);
month = date8.substring(4, 6);
day = date8.substring(6, 8);
var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year < 1700 || year > 2500) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
// calculate the sum of the products
for (i = 0; i < 17; i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
//length is 15
else {
var date6 = idNumber.substring(6, 12);
if (!/^[0-9]{6}$/.test(date6)) {
return false;
}
var month, day, year;
year = date6.substring(0, 2);
month = date6.substring(2, 4);
day = date6.substring(4, 6);
if (!/^\d{2}$/.test(year)) return false;
if (month < 1 || month > 12) return false;
if (day < 1 || day > 31) return false;
}
return true;
}
if (str_idCard && check(str_idCard)) {
if (undefined != sex) {
var sexStr = undefined, tmp = 0;
if (15 == str_idCard.length) {
tmp = str_idCard.substring(str_idCard.length - 1, str_idCard.length);
} else if (18 == str_idCard.length) {
tmp = str_idCard.substr(str_idCard.length - 2, 1);
}
if (0 == tmp % 2) {
sexStr = 'woman';
} else {
sexStr = 'man';
}
if (sex != sexStr) return false;
}
return true;
}
return false;
}
/**
* 检查身份证合法
* @param str_idCard sex为human man
* @returns {boolean}
*/
function checkIdCard(str_idCard, sex) {
str_idCard = str_idCard || String(this);
var check = function () {
var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
var varArray = new Array();
var lngProduct = 0;
var intCheckDigit;
var intStrLen = str_idCard.length;
var idNumber = str_idCard;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
// check and set value
for (var i = 0; i < intStrLen; i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
var date8 = idNumber.substring(6, 14);
if (!/^[0-9]{8}$/.test(date8)) {
return false;
}
var year, month, day;
year = date8.substring(0, 4);
month = date8.substring(4, 6);
day = date8.substring(6, 8);
var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year < 1700 || year > 2500) return false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;
if (month < 1 || month > 12) return false;
if (day < 1 || day > iaMonthDays[month - 1]) return false;
// calculate the sum of the products
for (i = 0; i < 17; i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = parityBit[lngProduct % 11];
// check last digit
if (varArray[17] != intCheckDigit) {
return false;
}
}
//length is 15
else {
var date6 = idNumber.substring(6, 12);
if (!/^[0-9]{6}$/.test(date6)) {
return false;
}
var month, day, year;
year = date6.substring(0, 2);
month = date6.substring(2, 4);
day = date6.substring(4, 6);
if (!/^\d{2}$/.test(year)) return false;
if (month < 1 || month > 12) return false;
if (day < 1 || day > 31) return false;
}
return true;
}
if (str_idCard && check(str_idCard)) {
if (undefined != sex) {
var sexStr = undefined, tmp = 0;
if (15 == str_idCard.length) {
tmp = str_idCard.substring(str_idCard.length - 1, str_idCard.length);
} else if (18 == str_idCard.length) {
tmp = str_idCard.substr(str_idCard.length - 2, 1);
}
if (0 == tmp % 2) {
sexStr = 'woman';
} else {
sexStr = 'man';
}
if (sex != sexStr) return false;
}
return true;
}
return false;
}
module.exports = {
// 判断是不是手机号
IsTelPhoneNumber : IsTelPhoneNumber,
// 计算孕周
calculateGestationalWeeks : calculateGestationalWeeks,
// 计算时间间隔
calculateTimeInterval : calculateTimeInterval,
// 高危等级
getRiskColorWithLevel : getRiskColorWithLevel,
// 计算孕周余天
calculateGestationalWeekDay : calculateGestationalWeekDay,
home_getRiskInfo : home_getRiskInfo,
healthRating_getRiskInfo : healthRating_getRiskInfo,
DateAdd : DateAdd,
// 保留一位小数
toDecimal: toDecimal,
getMonthAllDayWithDate: getMonthAllDayWithDate,
getLatestWeek: getLatestWeek,
getLatestMonth: getLatestMonth,
checkIdCard: checkIdCard
}