*
* @date 2016.08.02
* @param {String} value String or Number 포멧터를 적용할 값 (String 또는 Number 타입 지원)
* @param {String} type 적용할 포멧터 형식(Default:null,dollar,plusZero,won)
* @memberOf com
* @author InswaveSystems
* @return {String} 포멧터가 적용된 문자열
* @example
* com.transComma("12345");
* // return 예시) 12,345
* com.transComma("12345", "dollar");
* // return 예시) $12,345
* com.transComma("12345", "plusZero");
* // return 예시) 123,450
* com.transComma("12345", "won");
* // return 예시) 12,345원
*/
com.transComma = function(value, type) {
var amount;
if (type == "plusZero") {
amount = new String(value) + "0";
} else {
amount = new String(value);
}
amount = amount.split(".");
var amount1 = amount[0].split("").reverse();
var amount2 = amount[1];
var output = "";
for (var i = 0; i <= amount1.length - 1; i++) {
output = amount1[i] + output;
if ((i + 1) % 3 == 0 && (amount1.length - 1) !== i)
output = ',' + output;
}
if (type == "dollar") {
if (!amount2) {
output = "$ " + output;
} else {
output = "$ " + output + "." + amount2;
}
} else if (type == "won") {
if (!amount2) {
output = output + "원";
} else {
output = output + "." + amount2 + "원";
}
} else {
if (!amount2) {
output = output;
} else {
output = output + "." + amount2;
}
}
return output;
}
/**
* 텍스트 - 입력된 str에 포메터를 적용하여 반환한다.
*
* @date 2016.08.02
* @param {String} str String or Number 포멧터를 적용할 값
* @memberOf com
* @author InswaveSystems
* @return {String} 포멧터가 적용된 문자열
* @example
* com.transText("1");
* // return 예시) 1
* com.transText("12");
* // return 예시) 12
* com.transText("123");
* // return 예시) 1.23
* com.transText("1234");
* // return 예시) 12.34
* com.transText("12345");
* // return 예시) 123.345
* com.transText("123456");
* // return 예시) 1234.56
* com.transText("1234567");
* // return 예시) 12345.67
*/
com.transText = function(str) {
var amount = new String(str);
var result;
if (amount.length < 3) {
result = amount.substr(0, amount.length);
} else {
result = amount.substr(0, amount.length - 2) + "." + amount.substr(amount.length - 2, amount.length);
}
return result;
}
/**
* 날짜 - 입력된 str에 포메터를 적용하여 반환한다.
*
* @date 2016.08.02
* @param {String} str 포멧터를 적용할 파라메터 (String 또는 Number 타입 지원)
* @param {String} type 적용할 포멧터 형식 Default:null,slash,date
* @memberOf com
* @author InswaveSystems
* @return {String} 포멧터가 적용된 문자열
* @example
* com.transDate(20120319, "slash");
* // return 예시) 12/03/19
* com.transDate(20120319, "date");
* // return 예시) 2012/03/19
* com.transDate(20120319, "colon");
* // return 예시) 2012:03:19
* com.transDate(20120319);
* // return 예시) 2012년 03월 19일
*/
com.transDate = function(str, type) {
var output = "";
var date = new String(str);
if (type == "slash") {
date = date.substring(2, date.length);
for (var i = 0; i <= date.length - 1; i++) {
output = output + date[i];
if ((i + 1) % 2 == 0 && (date.length - 1) !== i)
output = output + "/";
}
} else if (type == "date") {
if (date.length == 8) {
output = date.substr(0, 4) + "/" + date.substr(4, 2) + "/" + date.substr(6, 2);
}
} else if (type == "colon") {
if (date.length == 8) {
output = date.substr(0, 4) + ":" + date.substr(4, 2) + ":" + date.substr(6, 2);
}
} else {
var year = date.substr(0, 4);
var month = date.substr(4, 2);
var day = date.substr(6, 2);
var output = year + "년 " + month + "월 " + day + "일";
}
return output;
};
/**
* displayFormatter - 입력된 str에 포메터를 적용하여 반환한다.
*
* @date 2016.08.03
* @param {String} str 포멧터를 적용할 문자열
* @memberOf com
* @author InswaveSystems
* @return {String} 포멧터가 적용된 문자열
* @example
* com.transUpper("google.com");
* // return 예시) "GOOGLE.COM"
*/
com.transUpper = function(str) {
return str.toUpperCase();
};
/**
* 문자(char)의 유형을 리턴한다.
*
* @date 2016 08.02
* @param {String} str 어떤 유형인지 리턴받을 문자
* @memberOf com
* @author InswaveSystems
* @return {Number} 유니코드 기준
* 한글음절[ 44032 ~ 55203 ] => 1
* 한글자모[ 4352 ~ 4601 ] => 2
* 숫자[ 48 ~ 57 ] => 4
* 특수문자[ 32 ~ 47 || 58 ~ 64 || 91 ~ 96 || 123 ~ 126 ] => 8
* 영문대[ 65 ~ 90 ] => 16
* 영문소[ 97 ~ 122 ] => 32
* 기타[그외 나머지] => 48
* @example
* com.getLocale("가");
* // return 예시)1
* com.getLocale("ㅏ");
* // return 예시)2
* com.getLocale("1");
* // return 예시)4
* com.getLocale("!");
* // return 예시)8
* com.getLocale("A");
* // return 예시)16
* com.getLocale("a");
* // return 예시)32
* com.getLocale("¿");
* // return 예시)48
*/
com.getLocale = function(str) {
var locale = 0;
if (str.length > 0) {
var charCode = str.charCodeAt(0);
if (charCode >= 0XAC00 && charCode <= 0XD7A3) { // 한글음절.[ 44032 ~ 55203 ]
locale = 0X1; // 1
} else if ((charCode >= 0X1100 && charCode <= 0X11F9) || (charCode >= 0X3131 && charCode <= 0X318E)) { // 한글자모.[ 4352 ~ 4601 ]
locale = 0X2; // 2
} else if (charCode >= 0X30 && charCode <= 0X39) { // 숫자.[ 48 ~ 57 ]
locale = 0X4; // 4
} else if ((charCode >= 0X20 && charCode <= 0X2F) || (charCode >= 0X3A && charCode <= 0X40) || (charCode >= 0X5B && charCode <= 0X60)
|| (charCode >= 0X7B && charCode <= 0X7E)) { // 특수문자
locale = 0X8; // 8
} else if (charCode >= 0X41 && charCode <= 0X5A) { // 영문 대.[ 65 ~ 90 ]
locale = 0X10; // 16
} else if (charCode >= 0X61 && charCode <= 0X7A) { // 영문 소.[ 97 ~ 122 ]
locale = 0X20; // 32
} else { // 기타
locale = 0X30; // 48
}
}
return locale;
};
/**
* 입력받은 문자열이 한글이면 true, 아니면 false를 리턴한다.
*
* @date 2016.08.02
* @param {String} str 한글 유형인지 검증할 문자열
* @memberOf com
* @author InswaveSystems
* @return {Boolean} true or false
* @example
* com.isKorean("");
* // return 예시) false
* com.isKorean("무궁화꽃이");
* // return 예시) true
*/
com.isKorean = function(str) {
if (str != null && str.length > 0) {
var locale = 0;
for (var i = 0; i < str.length; i++) {
locale = com.getLocale(str.charAt(i));
}
if ((locale & ~0x3) == 0) {
return true;
}
}
return false;
};
/**
* 종성이 존재하는지 여부를 검사한다.
*
* @date 2016.08.02
* @param {String} str 종성의 여부를 검사할 문자열
* @memberOf com
* @author InswaveSystems
* @return {Boolean} true or false
* @example
* com.isFinalConsonant("종서")
* // return 예시) false
* com.isFinalConsonant("종성")
* // return 예시) true
* com.isFinalConsonant("입니다")
* // return 예시) false
* com.isFinalConsonant("입니당")
* // return 예시) true
*/
com.isFinalConsonant = function(str) {
var code = str.charCodeAt(str.length - 1);
if ((code < 44032) || (code > 55197)) {
return false;
}
if ((code - 16) % 28 == 0) {
return false;
}
return true;
};
/**
* 단어 뒤에 '은'이나 '는'을 붙여서 반환한다.
*
* @date 2016.08.02
* @param {String} str 은, 는 붙일 문자열
* @memberOf com
* @author InswaveSystems
* @return {String} 변환된 문자열
* @example
* com.attachPostposition("나");
* // return 예시)"나는"
* com.attachPostposition("나와 너");
* // return 예시)"나와 너는"
* com.attachPostposition("그래서");
* // return 예시)"그래서는"
* com.attachPostposition("그랬습니다만");
* // return 예시)"그랬습니다만은"
*/
com.attachPostposition = function(str) {
if (com.isFinalConsonant(str)) {
str = str + "은 ";
} else {
str = str + "는 ";
}
return str;
};
/**
* 입력받은 문자열에 한글이 포함되어 있으면 true, 아니면 false를 리턴한다.
*
* @date 2016.08.02
* @param {String} str 한글이 포함되어 있는지 검증 받을 문자열
* @memberOf com
* @author InswaveSystems
* @return {Boolean} true or false
* @example
* com.isKoreanWord("abcd무궁화"); //return 예시) true
* com.isKoreanWord("abcd"); //return 예시) false
*/
com.isKoreanWord = function(str) {
var c;
for ( var i = 0; i < str.length; i++) {
c = str.charAt(i);
if (com.isKorean(c)) {
return true;
}
}
return false;
};
/**
* 사업자번호 유효성을 검사한다.
*
* @date 2014.12.10
* @memberOf com
* @param {String} str 사업자번호 문자열
* @returns {Boolean} 올바른 번호가 아닌경우 false
* @example com.checkBizID("1102112345");
*/
com.checkBizID = function(str) {
var sum = 0;
var aBizID = new Array(10);
var checkID = new Array("1", "3", "7", "1", "3", "7", "1", "3", "5");
for (var i = 0; i < 10; i++) {
aBizID[i] = str.substring(i, i + 1);
}
for (var i = 0; i < 9; i++) {
sum += aBizID[i] * checkID[i];
}
sum = sum + parseInt((aBizID[8] * 5) / 10);
temp = sum % 10;
temp1 = 0;
if (temp != 0) {
temp1 = 10 - temp;
} else {
temp1 = 0;
}
if (temp1 != aBizID[9]) {
return false;
}
return true;
};
/**
* 법인등록번호 유효성을 검사한다.
*
* @date 2014. 12. 10.
* @memberOf com
* @param {String} str 문자열
* @returns {Boolean} 올바른 번호가 아닌경우 false
* @example com.checkCorpID("110211234567");
*/
com.checkCorpID = function(str) {
var checkID = new Array(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2);
var sCorpNo = str;
var lV1 = 0;
var nV2 = 0;
var nV3 = 0;
for (var i = 0; i < 12; i++) {
lV1 = parseInt(sCorpNo.substring(i, i + 1)) * checkID[i];
if (lV1 >= 10) {
nV2 += lV1 % 10;
} else {
nV2 += lV1;
}
}
nV3 = nV2 % 10;
if (nV3 > 0) {
nV3 = 10 - nV3;
} else {
nV3 = 0;
}
if (sCorpNo.substring(12, 13) != nV3) {
return false;
}
return true;
};
/**
* 내외국인 주민등록번호 유효성을 검사한다.
*
* @date 2014. 12. 10.
* @memberOf com
* @param {String} str 문자열
* @returns {Boolean} 올바른 번호가 아닌경우 false
* @example com.checkPersonID("9701011234567");
*/
com.checkPersonID = function(str) {
var checkID = new Array(2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5);
var i = 0, sum = 0;
var temp = 0;
var yy = "";
if (str.length != 13) {
return false;
}
for (i = 0; i < 13; i++) {
if (str.charAt(i) < '0' || str.charAt(i) > '9') {
return false;
}
}
// foreigner PersonID Pass
if (str.substring(6, 13) == "5000000" || str.substring(6, 13) == "6000000" || str.substring(6, 13) == "7000000"
|| str.substring(6, 13) == "8000000") {
return true;
}
for (i = 0; i < 12; i++) {
sum += str.charAt(i) * checkID[i];
}
temp = sum - Math.floor(sum / 11) * 11;
temp = 11 - temp;
temp = temp - Math.floor(temp / 10) * 10;
// 나이 (-) 체크
if (str.charAt(6) == '1' || str.charAt(6) == '2' || str.charAt(6) == '5' || str.charAt(6) == '6') {
yy = "19";
} else {
yy = "20";
}
if (parseInt(common_util.getCurrentDate('yyyy')) - parseInt(yy + str.substring(0, 2)) < 0) {
return false;
}
// 외국인 주민번호 체크로직 추가
if (str.charAt(6) != '5' && str.charAt(6) != '6' && str.charAt(6) != '7' && str.charAt(6) != '8') {
if (temp == eval(str.charAt(12))) {
return true;
} else {
return false;
}
} else {
if ((temp + 2) % 10 == eval(str.charAt(12))) {
return true;
} else {
return false;
}
}
return false;
};
/**
* 메일주소 체크한다.
*
* @date 2014. 12. 10.
* @memberOf com
* @param {String} str 메일주소
* @return {Boolean} 정상이면 공백("")을 반환, 그외는 에러 메시지 반환
* @example com.isEmail("emailTest@email.com")
*/
com.checkEmail = function(str) {
if (typeof str != "undefined" && str != "") {
var format = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (format.test(str)) {
return true;
} else {
return false;
}
}
return true;
};