koipa_edu_2025-1/src/main/webapp/js/util.js
2023-05-03 18:30:24 +09:00

135 lines
3.3 KiB
JavaScript

String.prototype.bytes = function() {
var str = this;
var l = 0;
for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 3 : 1;
return l;
};
String.prototype.cut = function(len) {
var str = this;
var l = 0;
for (var i=0; i<str.length; i++) {
l += (str.charCodeAt(i) > 128) ? 3 : 1;
if (l > len) return str.substring(0,i);
}
return str;
};
/**
* object empty check
* */
function emptyObject(param){
return Object.keys(param).length === 0;
}
function isEmptyList(data){
if(data == undefined || data == null || data.length == 0){
return true;
}
return false;
}
function dateFormatStr (dateStr) {
var refinedDateStr;
var rv;
if (dateStr == null) {
return null;
}
refinedDateStr = dateStr.match(/\d+/g);
if (refinedDateStr == null || refinedDateStr.length == 0) {
return null;
}
refinedDateStr = refinedDateStr + "";
switch (refinedDateStr.length) {
case 4:
rv = moment(refinedDateStr, "HHmm");
break;
case 6:
rv = moment(refinedDateStr, "HHmmss");
break;
case 8:
rv = moment(refinedDateStr, "YYYYMMDD");
break;
case 12:
rv = moment(refinedDateStr, "YYYYMMDDHHmm");
break;
case 14:
rv = moment(refinedDateStr, "YYYYMMDDHHmmss");
break;
default:
throw new Error("invalid date str " + dateStr);
}
return rv;
}
function dateFormat(str, type) {
var date = dateFormatStr(str);
if (date == null) {
return "";
}
if (type == "slash") {
return date.format("YYYY/MM/DD");
} else if (type == "date") {
return date.format("YYYY.MM.DD");
} else if (type == "colon") {
return date.format("YYYY:MM:DD");
} else if (type == "dash") {
return date.format("YYYY-MM-DD");
}else if(type == "normal"){
return date.format("YYYYMMDD");
} else {
return date.format("YYYY-MM-DD");
}
};
function timeFomat (value, type) {
var date = dateFormatStr(value);
if (date == null) {
return "";
}
if (type == "slash") {
return date.format("HH:mm:ss");
} else if (type == "date") {
return date.format("HH:mm:ss");
} else if (type == "colon") {
return date.format("HH:mm:ss");
} else if (type == "dash") {
return date.format("HH:mm:ss");
} else {
return date.format("HH:mm");
}
};
function countBytes(obj, len, target){
var cnt = obj.value.bytes();
var txtSplit;
var ieVersion;
if(cnt > 0){
txtSplit = (obj.value).split("\n");
if(navigator.appName == "Microsoft Internet Explorer"){
ieVersion = navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5,navigator.appVersion.indexOf("MSIE")+8);
if(ieVersion >= "9.0"){
cnt += txtSplit.length - 1
}
}else{
cnt += txtSplit.length - 1
}
}
if(cnt <= len){
target.textContent = cnt;
}else{
alert("허용 글자수를 초과하였습니다.");
obj.value = obj.value.cut(len - txtSplit.length + 1);
target.textContent = obj.value.bytes();
}
}