Notice
Recent Posts
Recent Comments
Link
투케이2K
50. (TWOK/UTIL) [Web/JavaScript] C_Util - string, 날짜, 형 변환, 정규식 수행 등 유틸 자바스크립트 파일 본문
투케이2K 유틸파일
50. (TWOK/UTIL) [Web/JavaScript] C_Util - string, 날짜, 형 변환, 정규식 수행 등 유틸 자바스크립트 파일
투케이2K 2022. 6. 10. 17:16[설 명]
프로그램 : Web / JavaScript
설 명 : C_Util - string, 날짜, 형 변환, 정규식 수행 등 유틸 자바스크립트 파일
[소스 코드]
/**
* // -----------------------------------------
* [C_Util 설명]
* // -----------------------------------------
* 1. 프로그램 상 필요한 유틸 파일 모음 클래스
* // -----------------------------------------
* 2. CDN 연결 : <script type="text/javascript" src="../경로/C_Util.js"></script>
* // -----------------------------------------
* 3. C_Util 사용 필요 HTML CDN 추가 :
* - moment (날짜 및 시간) : <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
* - lodash (배열 및 객체) : <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
* - crypto (데이터 암호화) : <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
* // -----------------------------------------
* 4. C_Util_stringNotNull : String 문자열 데이터 널 판단 실시 [true (널 아님) / false (널임)]
* // -----------------------------------------
* 5. C_Util_contains : String 문자열 데이터에서 특정 문자열 포함 확인 [true (포함) / false (포함 안함)]
* // -----------------------------------------
* 6. C_Util_stringMultiContains : String 문자열 다중 contains 문자 포함 확인 실시 [true (포함) / false (포함 안함)]
* // -----------------------------------------
* 7. C_Util_stringEquals : String 문자열 같은지 확인 실시 [true (같음) / false (다름)]
* // -----------------------------------------
* 8. C_Util_stringJsonObjectEnable : String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 [true (파싱 가능) / false (파싱 불가능)]
* // -----------------------------------------
* 9. C_Util_parseJson : string , object 타입 데이터를 jsonObject 객체로 반환 실시 (json 객체 반환 / null 반환)
* // -----------------------------------------
* 10. [moment] : C_Util_dateToMilliseconds : 현재 날짜 및 시간을 밀리세컨드 타임 스탬프 형식 문자열로 반환 실시 [String : 1685321456982]
* // -----------------------------------------
* 11. [moment] : C_Util_milliSecondsToDate : 타임 스탬프 밀리세컨드 13자리 형식을 날짜 및 시간 데이터로 반환 실시 [String : 20220608102030]
* // -----------------------------------------
* 12. [moment] : C_Util_getNowDateNumber : 현재 날짜 및 시간 데이터 24 시간 형태로 출력 실시 [String : 20220608102030]
* // -----------------------------------------
* 13. [lodash] : C_Util_jsonArrayObjectKeySort : json array 및 object 형식 데이터를 특정 key 값 기준으로 정렬 실시 [JsonArray In JsonObject]
* // -----------------------------------------
* 14. [lodash] : C_Util_newJsonSearchKeyValue : json array 및 object 형식 데이터에서 특정 key 값을 찾아서 value 값을 만족하는 새로운 집합 [JsonArray In JsonObject]
* // -----------------------------------------
* 15. [lodash] : C_Util_arrayJoinString : 각 배열 리스트 데이터를 특정 문자 기준으로 합쳐서 String 형태로 반환 [String : 하나^둘]
* // -----------------------------------------
* 16. C_Util_base64EncodeString : base64 인코딩 수행 [String : 인코딩 된 문자열 반환]
* // -----------------------------------------
* 17. C_Util_base64DecodeString : base64 디코딩 수행 [String : 디코딩 된 문자열 반환]
* // -----------------------------------------
* 18. [crypto] C_Util_aes128EncodeString : aes128 인코딩 수행 [String : 인코딩 된 문자열 반환]
* // -----------------------------------------
* 19. [crypto] C_Util_aes128DecodeString : aes128 디코딩 수행 [String : 디코딩 된 문자열 반환]
* // -----------------------------------------
* 20. C_Util_urlEncodeString : URL 인코딩 수행 (특수 문자 포함) [String : 인코딩 된 문자열 반환]
* // -----------------------------------------
* 21. C_Util_urlDecodeString : URL 디코딩 수행 (특수 문자 포함) [String : 디코딩 된 문자열 반환]
* // -----------------------------------------
* 22. C_Util_stringIsNumber : string 문자열 데이터 모두 정수 구성 여부 확인 [true (모두 숫자) / false (모두 숫자 아님)]
* // -----------------------------------------
* 23. C_Util_stringMatchType : 정규식 수행 메소드 : 특정 문자로만 데이터가 구성되어있는지 확인 실시 [true (특정 패턴 문자로만 구성) / false (특정 패턴 문자 구성 아님)]
* // -----------------------------------------
* */
// [C_Util_StringNotNull 메소드 정의]
function C_Util_stringNotNull(strData){
/**
* // -----------------------------------------
* [C_Util_stringNotNull 메소드 설명]
* // -----------------------------------------
* 설 명 : String 문자열 데이터 널 판단 실시
* // -----------------------------------------
* INPUT :
* C_Util_stringNotNull("TWOK");
* C_Util_stringNotNull(null);
* // -----------------------------------------
* RETURN : true (널 값 아님) / false (널 값 임)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = false;
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& strData != "undefined"
&& strData != "null"
&& strData != ""){
// [리턴 결과 삽입]
returnData = true;
}
}
catch (exception) {
console.error("[C_Util_StringNotNull] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_StringNotNull] : [START]");
console.log("[TYPE] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_contains 메소드 정의]
function C_Util_contains(strData, searchData){
/**
* // -----------------------------------------
* [C_Util_contains 메소드 설명]
* // -----------------------------------------
* 설 명 : String 문자열 데이터에서 특정 문자열 포함 확인
* // -----------------------------------------
* INPUT :
* C_Util_contains("TWOK안녕반가워", "TWOK");
* C_Util_contains("TWOK안녕반가워", "2K");
* // -----------------------------------------
* RETURN : true (문자열 포함) / false (문자열 포함 안함)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = false;
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& strData != ""
&& searchData != null
&& String(typeof searchData).toLowerCase().trim() != "undefined"
&& String(typeof searchData).toLowerCase().trim() == "string"
&& searchData != ""
&& strData.indexOf(searchData) >= 0){
// [리턴 결과 삽입]
returnData = true;
}
}
catch (exception) {
console.error("[C_Util_contains] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_contains] : [START]");
console.log("[TYPE] : [STRING] : " + String(typeof strData).toLowerCase().trim());
console.log("[TYPE] : [SEARCH] : " + String(typeof searchData).toLowerCase().trim());
console.log("[INPUT] : [STRING] : " + strData);
console.log("[INPUT] : [SEARCH] : " + searchData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_stringMultiContains 메소드 정의]
function C_Util_stringMultiContains(strData, searchArray){
/**
* // -----------------------------------------
* [C_Util_stringMultiContains 메소드 설명]
* // -----------------------------------------
* 설 명 : String 문자열 다중 contains 문자 포함 확인 실시
* // -----------------------------------------
* INPUT :
* C_Util_stringMultiContains("TWOK안녕반가워", ["TWOK"]);
* C_Util_stringMultiContains("TWOK안녕반가워", ["TWOK", "반가워"]);
* C_Util_stringMultiContains("TWOK안녕반가워", ["TWOK", "2K"]);
* // -----------------------------------------
* RETURN : true (다중 문자열 포함) / false (다중 문자열 포함 안함)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = true;
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& strData != ""
&& searchArray != null
&& String(typeof searchArray).toLowerCase().trim() != "undefined"
&& String(typeof searchArray).toLowerCase().trim() == "object"
&& searchArray.length > 0){
// [for 문을 돌면서 문자열 판단 실시]
for (var i=0; i<searchArray.length; i++){
var idxData = searchArray[i];
if (idxData != null
&& String(typeof idxData).toLowerCase().trim() != "undefined"
&& String(typeof idxData).toLowerCase().trim() == "string"
&& idxData != ""
&& strData.indexOf(idxData) >= 0){
}
else {
// [리턴 결과 삽입]
returnData = false;
}
}
}
else {
// [리턴 결과 삽입]
returnData = false;
}
}
catch (exception) {
console.error("[C_Util_stringMultiContains] : [EXCEPTION] : " + exception.message);
// [리턴 결과 삽입]
returnData = false;
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_stringMultiContains] : [START]");
console.log("[TYPE] : [STRING] : " + String(typeof strData).toLowerCase().trim());
console.log("[TYPE] : [ARRAY] : " + String(typeof searchArray).toLowerCase().trim());
console.log("[INPUT] : [STRING] : " + strData);
console.log("[INPUT] : [ARRAY] : " + searchArray);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_stringEquals 메소드 정의]
function C_Util_stringEquals(oneString, twoString){
/**
* // -----------------------------------------
* [C_Util_stringEquals 메소드 설명]
* // -----------------------------------------
* 설 명 : String 문자열가 서로 같은지 확인 실시
* // -----------------------------------------
* INPUT :
* C_Util_stringEquals("TWOK", "TWOK");
* C_Util_stringEquals("TWOK", "2K");
* C_Util_stringEquals("TWOK", String("TWOK"));
* // -----------------------------------------
* RETURN : true (문자열 같음) / false (문자열 다름)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = false;
// [로직 수행 실시]
try {
if (oneString != null
&& String(typeof oneString).toLowerCase().trim() != "undefined"
&& String(typeof oneString).toLowerCase().trim() == "string"
&& twoString != null
&& String(typeof twoString).toLowerCase().trim() != "undefined"
&& String(typeof twoString).toLowerCase().trim() == "string"){
if (oneString == twoString){
// [리턴 결과 삽입]
returnData = true;
}
}
}
catch (exception) {
console.error("[C_Util_stringEquals] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_stringEquals] : [START]");
console.log("[TYPE] : [ONE] : " + String(typeof oneString).toLowerCase().trim());
console.log("[TYPE] : [TWO] : " + String(typeof twoString).toLowerCase().trim());
console.log("[INPUT] : [ONE] : " + oneString);
console.log("[INPUT] : [TWO] : " + twoString);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_stringJsonObjectEnable 메소드 정의]
function C_Util_stringJsonObjectEnable(jsonData){
/**
* // -----------------------------------------
* [C_Util_stringJsonObjectEnable 메소드 설명]
* // -----------------------------------------
* 설 명 : JsonObject 로 파싱 가능한지 체크 실시
* // -----------------------------------------
* INPUT :
*
* -----------------------------------------
* [성공]
* -----------------------------------------
* C_Util_stringJsonObjectEnable( {"name":"TWOK"} );
* -----------------------------------------
* var jsonObj = new Object();
* jsonObj["name"] = "TWOK";
* jsonObj["age"] = 29;
* C_Util_stringJsonObjectEnable( JSON.stringify(jsonObj) );
* -----------------------------------------
* var jsonStr = "{\"name\":\"TWOK\",\"age\":29}";
* C_Util_stringJsonObjectEnable( jsonStr );
* -----------------------------------------
*
*
* -----------------------------------------
* [실패]
* -----------------------------------------
* C_Util_stringJsonObjectEnable("TWOK");
* -----------------------------------------
* C_Util_stringJsonObjectEnable(null);
* -----------------------------------------
* C_Util_stringJsonObjectEnable(1);
* // -----------------------------------------
* RETURN : true (파싱 가능) / false (파싱 불가능)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var inputData = null;
var returnData = false;
// [로직 수행 실시]
try {
if (jsonData != null
&& String(typeof jsonData).toLowerCase().trim() != "undefined"
&& String(typeof jsonData).toLowerCase().trim() == "object"
|| String(typeof jsonData).toLowerCase().trim() == "string"
&& JSON.stringify(jsonData) != "null"){
// [json 데이터 담기]
if (String(typeof jsonData).toLowerCase().trim() == "object"){
inputData = JSON.parse(JSON.stringify(jsonData));
}
else {
inputData = JSON.parse(jsonData);
}
/*
for (var key in inputData){
// [KEY / VALUE 확인]
console.log("[C_Util_stringJsonObjectEnable] : [key] : [value] : " + key + " / " + inputData[key]);
}
// */
// [리턴 데이터 삽입]
returnData = true;
}
else {
inputData = jsonData;
}
}
catch (exception) {
console.error("[C_Util_stringJsonObjectEnable] : [EXCEPTION] : " + exception.message);
inputData = jsonData;
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_stringJsonObjectEnable] : [START]");
console.log("[TYPE] : " + String(typeof jsonData).toLowerCase().trim());
console.log("[INPUT] : " + JSON.stringify(inputData));
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_parseJson 메소드 정의]
function C_Util_parseJson(jsonData){
/**
* // -----------------------------------------
* [C_Util_parseJson 메소드 설명]
* // -----------------------------------------
* 설 명 : JsonObject 객체 반환 수행 실시
* // -----------------------------------------
* INPUT :
*
* -----------------------------------------
* [성공]
* -----------------------------------------
* var jsonParse = C_Util_parseJson( {"name":"TWOK"} );
* -----------------------------------------
* var jsonObj = new Object();
* jsonObj["name"] = "TWOK";
* jsonObj["age"] = 29;
* var jsonParse = C_Util_parseJson( JSON.stringify(jsonObj) );
* -----------------------------------------
* var jsonStr = "{\"name\":\"TWOK\",\"age\":29}";
* var jsonParse = C_Util_parseJson( jsonStr );
* -----------------------------------------
* for (var key in jsonParse){
* console.log("[C_Util_parseJson] : [key] : [value] : " + key + " / " + jsonParse[key]);
* }
* -----------------------------------------
*
*
* -----------------------------------------
* [실패]
* -----------------------------------------
* C_Util_parseJson("TWOK");
* -----------------------------------------
* C_Util_parseJson(null);
* -----------------------------------------
* C_Util_parseJson(1);
* // -----------------------------------------
* RETURN : json 객체 (정상 반환) / null (json 변경 실패)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var inputData = null;
var returnData = null;
var parseEnable = false;
// [로직 수행 실시]
try {
if (jsonData != null
&& String(typeof jsonData).toLowerCase().trim() != "undefined"
&& String(typeof jsonData).toLowerCase().trim() == "object"
|| String(typeof jsonData).toLowerCase().trim() == "string"
&& JSON.stringify(jsonData) != "null"){
// [json 데이터 담기]
if (String(typeof jsonData).toLowerCase().trim() == "object"){
inputData = JSON.parse(JSON.stringify(jsonData));
}
else {
inputData = JSON.parse(jsonData);
}
/*
for (var key in inputData){
// [KEY / VALUE 확인]
console.log("[C_Util_parseJson] : [key] : [value] : " + key + " / " + inputData[key]);
}
// */
// [파싱 가능 여부 값 설정]
parseEnable = true;
// [리턴 데이터 삽입]
returnData = inputData;
}
else {
inputData = jsonData;
}
}
catch (exception) {
console.error("[C_Util_parseJson] : [EXCEPTION] : " + exception.message);
inputData = jsonData;
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_parseJson] : [START]");
console.log("[INPUT TYPE] : " + String(typeof jsonData).toLowerCase().trim());
console.log("[INPUT DATA] : " + JSON.stringify(inputData));
console.log("[PARSE ENABLE] : " + parseEnable);
console.log("[RETURN TYPE] : " + String(typeof returnData).toLowerCase().trim());
console.log("[RETURN DATA] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_dateToMilliseconds 메소드 정의]
function C_Util_dateToMilliseconds(){
/**
* // -----------------------------------------
* [C_Util_dateToMilliseconds 메소드 설명]
* // -----------------------------------------
* 설 명 : 현재 날짜 및 시간을 타임 스탬프 형식 문자열로 반환 실시
* // -----------------------------------------
* INPUT : C_Util_dateToMilliseconds();
* // -----------------------------------------
* RETURN : 타임 스탬프 데이터를 String 형식으로 반환 실시 : [13자리] 1648349189806
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
// 타임 스탬프 (밀리세컨드 13자리 확인 실시)
var timeStamp = Date.now();
// [리턴 변수에 삽입 실시]
returnData = String(timeStamp);
}
catch (exception) {
console.error("[C_Util_dateToMilliseconds] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_dateToMilliseconds] : [START]");
console.log("[TYPE] : " + String(typeof returnData).toLowerCase().trim());
console.log("[LENGTH] : " + String(returnData.length));
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_milliSecondsToDate 메소드 정의]
function C_Util_milliSecondsToDate(strData){
/**
* // -----------------------------------------
* [C_Util_milliSecondsToDate 메소드 설명]
* // -----------------------------------------
* 설 명 : 타임 스탬프 밀리세컨드 13자리 형식을 날짜 및 시간 데이터로 반환 실시
* // -----------------------------------------
* 함수 사용 위한 CDN 추가 : <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
* // -----------------------------------------
* INPUT : C_Util_milliSecondsToDate("1654825111520");
* // -----------------------------------------
* RETURN : 20220610103831
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
// [리턴 변수에 삽입 실시]
returnData = String(moment(strData, "x").format("YYYYMMDDHHmmss"));
}
}
catch (exception) {
console.error("[C_Util_milliSecondsToDate] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_milliSecondsToDate] : [START]");
console.log("[TYPE] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_getNowDate 메소드 정의]
function C_Util_getNowDateNumber(){
/**
* // -----------------------------------------
* [C_Util_getNowDateNumber 메소드 설명]
* // -----------------------------------------
* 설 명 : 현재 날짜 및 시간 데이터 24 시간 형태로 출력 실시
* // -----------------------------------------
* 함수 사용 위한 CDN 추가 : <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
* // -----------------------------------------
* INPUT : C_Util_getNowDateNumber();
* // -----------------------------------------
* RETURN : 20220610092533
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
// [리턴 변수에 삽입 실시]
var date = new Date();
returnData = String(moment(date).format("YYYYMMDDHHmmss"));
}
catch (exception) {
console.error("[C_Util_getNowDateNumber] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_getNowDateNumber] : [START]");
console.log("[TYPE] : " + String(typeof returnData).toLowerCase().trim());
console.log("[LENGTH] : " + String(returnData.length));
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_jsonArrayObjectKeySort 메소드 정의]
function C_Util_jsonArrayObjectKeySort(jsonData, orderByKey){
/**
* // -----------------------------------------
* [C_Util_jsonArrayObjectKeySort 메소드 설명]
* // -----------------------------------------
* 설 명 : json array 및 object 형식 데이터를 특정 key 값 기준으로 정렬 실시
* // -----------------------------------------
* 함수 사용 위한 CDN 추가 : <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
* // -----------------------------------------
* INPUT : C_Util_jsonArrayObjectKeySort( [{"idx" : 2, "name" : "TWOK"}, {"idx" : 1, "name" : "투케이"}] , "idx" );
* // -----------------------------------------
* RETURN : [{"idx" : 1, "name" : "투케이"}, {"idx" : 2, "name" : "TWOK"}]
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = null;
// [로직 수행 실시]
try {
if (jsonData != null
&& String(typeof jsonData).toLowerCase().trim() != "undefined"
&& String(typeof jsonData).toLowerCase().trim() == "object"
&& JSON.stringify(jsonData) != "null"
&& orderByKey != null
&& String(typeof orderByKey).toLowerCase().trim() != "undefined"
&& String(typeof orderByKey).toLowerCase().trim() == "string"
&& JSON.stringify(orderByKey) != "null"
&& orderByKey != "null"
&& orderByKey != ""){
// [리턴 변수에 삽입 실시]
returnData = _.orderBy(jsonData, [String(orderByKey)], ["asc"]);
}
}
catch (exception) {
console.error("[C_Util_jsonArrayObjectKeySort] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_jsonArrayObjectKeySort] : [START]");
console.log("[INPUT TYPE] : " + String(typeof jsonData).toLowerCase().trim());
console.log("[INPUT DATA] : " + JSON.stringify(jsonData));
console.log("[ORDER BY KEY] : " + orderByKey);
console.log("[RETURN TYPE] : " + String(typeof returnData).toLowerCase().trim());
console.log("[RETURN DATA] : " + JSON.stringify(returnData));
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_newJsonSearchKeyValue 메소드 정의]
function C_Util_newJsonSearchKeyValue(jsonData, searchKey, searchValue){
/**
* // -----------------------------------------
* [C_Util_newJsonSearchKeyValue 메소드 설명]
* // -----------------------------------------
* 설 명 : json array 및 object 형식 데이터에서 특정 key 값을 찾아서 value 값을 만족하는 새로운 집합 반환
* // -----------------------------------------
* 함수 사용 위한 CDN 추가 : <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
* // -----------------------------------------
* INPUT : C_Util_newJsonSearchKeyValue( [{"idx" : 2, "name" : "TWOK"}, {"idx" : 1, "name" : "투케이"}, {"idx" : 3, "name" : "투케이"}] , "name", "투케이" );
* // -----------------------------------------
* RETURN : [{"idx" : 1, "name" : "투케이"}, {"idx" : 3, "name" : "투케이"}]
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = null;
// [로직 수행 실시]
try {
if (jsonData != null
&& String(typeof jsonData).toLowerCase().trim() != "undefined"
&& String(typeof jsonData).toLowerCase().trim() == "object"
&& JSON.stringify(jsonData) != "null"
&& searchKey != null
&& String(typeof searchKey).toLowerCase().trim() != "undefined"
&& String(typeof searchKey).toLowerCase().trim() == "string"
&& JSON.stringify(searchKey) != "null"
&& searchKey != "null"
&& searchKey != ""
&& searchValue != null
&& String(typeof searchValue).toLowerCase().trim() != "undefined"){
// [리턴 변수에 삽입 실시]
returnData = _.filter(jsonData, [String(searchKey) , searchValue]);
}
}
catch (exception) {
console.error("[C_Util_newJsonSearchKeyValue] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_newJsonSearchKeyValue] : [START]");
console.log("[INPUT TYPE] : " + String(typeof jsonData).toLowerCase().trim());
console.log("[INPUT DATA] : " + JSON.stringify(jsonData));
console.log("[SEARCH KEY] : " + searchKey);
console.log("[SEARCH VALUE] : " + searchValue);
console.log("[RETURN TYPE] : " + String(typeof returnData).toLowerCase().trim());
console.log("[RETURN DATA] : " + JSON.stringify(returnData));
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_arrayJoinString 메소드 정의]
function C_Util_arrayJoinString(array, joinString){
/**
* // -----------------------------------------
* [C_Util_arrayJoinString 메소드 설명]
* // -----------------------------------------
* 설 명 : 각 배열 리스트 데이터를 특정 문자 기준으로 합쳐서 String 형태로 반환
* // -----------------------------------------
* 함수 사용 위한 CDN 추가 : <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
* // -----------------------------------------
* INPUT : C_Util_arrayJoinString( ["하나" , "둘"] , "^" );
* // -----------------------------------------
* RETURN : 하나^둘
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (array != null
&& String(typeof array).toLowerCase().trim() != "undefined"
&& String(typeof array).toLowerCase().trim() == "object"
&& JSON.stringify(array) != "null"
&& joinString != null
&& String(typeof joinString).toLowerCase().trim() != "undefined"
&& String(typeof joinString).toLowerCase().trim() == "string"
&& JSON.stringify(joinString) != "null"
&& joinString != "null"
&& joinString != ""){
// [리턴 변수에 삽입 실시]
returnData = _.join(array, joinString);
}
}
catch (exception) {
console.error("[C_Util_arrayJoinString] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_arrayJoinString] : [START]");
console.log("[INPUT TYPE] : " + String(typeof array).toLowerCase().trim());
console.log("[INPUT DATA] : " + JSON.stringify(array));
console.log("[JOIN STRING] : " + joinString);
console.log("[RETURN TYPE] : " + String(typeof returnData).toLowerCase().trim());
console.log("[RETURN DATA] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_base64EncodeString 메소드 정의]
function C_Util_base64EncodeString(strData){
/**
* // -----------------------------------------
* [C_Util_base64EncodeString 메소드 설명]
* // -----------------------------------------
* 설 명 : base64 인코딩 수행
* // -----------------------------------------
* INPUT : C_Util_base64EncodeString( "hello" );
* // -----------------------------------------
* RETURN : aGVsbG8= (base64 인코딩 문자열)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
// [리턴 변수에 삽입 실시]
returnData = btoa(strData);
}
}
catch (exception) {
console.error("[C_Util_base64EncodeString] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_base64EncodeString] : [START]");
console.log("[TYPE] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return String(returnData);
};
// [C_Util_base64DecodeString 메소드 정의]
function C_Util_base64DecodeString(encodeString){
/**
* // -----------------------------------------
* [C_Util_base64DecodeString 메소드 설명]
* // -----------------------------------------
* 설 명 : base64 디코딩 수행
* // -----------------------------------------
* INPUT : C_Util_base64DecodeString( "aGVsbG8=" );
* // -----------------------------------------
* RETURN : hello (base64 복호화 문자열)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (encodeString != null
&& String(typeof encodeString).toLowerCase().trim() != "undefined"
&& String(typeof encodeString).toLowerCase().trim() == "string"
&& JSON.stringify(encodeString) != "null"
&& encodeString != "null"
&& encodeString != ""){
// [리턴 변수에 삽입 실시]
returnData = atob(encodeString);
}
}
catch (exception) {
console.error("[C_Util_base64DecodeString] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_base64DecodeString] : [START]");
console.log("[TYPE] : " + String(typeof encodeString).toLowerCase().trim());
console.log("[INPUT] : " + encodeString);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return String(returnData);
};
// [C_Util_aes128EncodeString 메소드 정의]
function C_Util_aes128EncodeString(strKey, strIv, strData){
/**
* // -----------------------------------------
* [C_Util_aes128EncodeString 메소드 설명]
* // -----------------------------------------
* 설 명 : aes128 인코딩 수행
* // -----------------------------------------
* INPUT : C_Util_aes128EncodeString( "0123456789abcdef" , "" , "hello" );
* // -----------------------------------------
* RETURN : Z0x+8454yr2c7JwSWCOmOQ==
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (strKey != null
&& String(typeof strKey).toLowerCase().trim() != "undefined"
&& String(typeof strKey).toLowerCase().trim() == "string"
&& JSON.stringify(strKey) != "null"
&& strKey != "null"
&& strKey != ""
&& strIv != null
&& String(typeof strIv).toLowerCase().trim() != "undefined"
&& String(typeof strIv).toLowerCase().trim() == "string"
&& JSON.stringify(strIv) != "null"
&& strIv != "null"
&& strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
// [리턴 변수에 삽입 실시]
returnData = CryptoJS.AES.encrypt(
strData,
CryptoJS.enc.Utf8.parse(strKey), {
iv: CryptoJS.enc.Utf8.parse(strIv), // [Enter IV (Optional) 지정 방식]
padding: CryptoJS.pad.Pkcs7,
mode: CryptoJS.mode.CBC // [cbc 모드 선택]
});
}
}
catch (exception) {
console.error("[C_Util_aes128EncodeString] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_aes128EncodeString] : [START]");
console.log("[TYPE KEY] : " + String(typeof strKey).toLowerCase().trim());
console.log("[TYPE IV] : " + String(typeof strIv).toLowerCase().trim());
console.log("[TYPE DATA] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT KEY] : " + strKey);
console.log("[INPUT IV] : " + strIv);
console.log("[INPUT DATA] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return String(returnData);
};
// [C_Util_aes128DecodeString 메소드 정의]
function C_Util_aes128DecodeString(strKey, strIv, strData){
/**
* // -----------------------------------------
* [C_Util_aes128DecodeString 메소드 설명]
* // -----------------------------------------
* 설 명 : aes128 디코딩 수행
* // -----------------------------------------
* INPUT : C_Util_aes128DecodeString( "0123456789abcdef" , "" , "Z0x+8454yr2c7JwSWCOmOQ==" );
* // -----------------------------------------
* RETURN : hello
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (strKey != null
&& String(typeof strKey).toLowerCase().trim() != "undefined"
&& String(typeof strKey).toLowerCase().trim() == "string"
&& JSON.stringify(strKey) != "null"
&& strKey != "null"
&& strKey != ""
&& strIv != null
&& String(typeof strIv).toLowerCase().trim() != "undefined"
&& String(typeof strIv).toLowerCase().trim() == "string"
&& JSON.stringify(strIv) != "null"
&& strIv != "null"
&& strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
// [AES 복호화 수행]
const cipher = CryptoJS.AES.decrypt(
strData,
CryptoJS.enc.Utf8.parse(strKey), {
iv: CryptoJS.enc.Utf8.parse(strIv), // [Enter IV (Optional) 지정 방식]
padding: CryptoJS.pad.Pkcs7,
mode: CryptoJS.mode.CBC // [cbc 모드 선택]
});
// [리턴 변수에 삽입 실시]
returnData = cipher.toString(CryptoJS.enc.Utf8);
}
}
catch (exception) {
console.error("[C_Util_aes128DecodeString] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_aes128DecodeString] : [START]");
console.log("[TYPE KEY] : " + String(typeof strKey).toLowerCase().trim());
console.log("[TYPE IV] : " + String(typeof strIv).toLowerCase().trim());
console.log("[TYPE DATA] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT KEY] : " + strKey);
console.log("[INPUT IV] : " + strIv);
console.log("[INPUT DATA] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return String(returnData);
};
// [C_Util_urlEncodeString 메소드 정의]
function C_Util_urlEncodeString(strData){
/**
* // -----------------------------------------
* [C_Util_urlEncodeString 메소드 설명]
* // -----------------------------------------
* 설 명 : url 인코딩 수행 실시
* // -----------------------------------------
* INPUT : C_Util_urlEncodeString( "투케이,29,man" );
* // -----------------------------------------
* RETURN : %ED%88%AC%EC%BC%80%EC%9D%B4%2C29%2Cman
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
// [리턴 변수에 삽입 실시]
returnData = encodeURIComponent(strData);
}
}
catch (exception) {
console.error("[C_Util_urlEncodeString] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_urlEncodeString] : [START]");
console.log("[TYPE] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return String(returnData);
};
// [C_Util_urlDecodeString 메소드 정의]
function C_Util_urlDecodeString(strData){
/**
* // -----------------------------------------
* [C_Util_urlDecodeString 메소드 설명]
* // -----------------------------------------
* 설 명 : url 디코딩 수행 실시
* // -----------------------------------------
* INPUT : C_Util_urlDecodeString( "%ED%88%AC%EC%BC%80%EC%9D%B4%2C29%2Cman" );
* // -----------------------------------------
* RETURN : 투케이,29,man
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var returnData = "";
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
// [리턴 변수에 삽입 실시]
returnData = decodeURIComponent(strData);
}
}
catch (exception) {
console.error("[C_Util_urlDecodeString] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_urlDecodeString] : [START]");
console.log("[TYPE] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return String(returnData);
};
// [C_Util_stringIsNumber 메소드 정의]
function C_Util_stringIsNumber(strData){
/**
* // -----------------------------------------
* [C_Util_stringIsNumber 메소드 설명]
* // -----------------------------------------
* 설 명 : string 문자열 데이터 모두 정수 구성 여부 확인
* // -----------------------------------------
* INPUT :
* C_Util_stringIsNumber( "123" );
* C_Util_stringIsNumber( "+123" );
* C_Util_stringIsNumber( "-123" );
*
* C_Util_stringIsNumber( "123가" );
* C_Util_stringIsNumber( "123hello" );
* C_Util_stringIsNumber( "123@" );
* // -----------------------------------------
* RETURN : true (모두 숫자 구성) / false (모두 숫자 아님)
* // -----------------------------------------
* */
// [숫자 판단 내부 함수]
function isNum(s) {
s += ''; // 문자열로 변환
s = s.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
if (s == '' || isNaN(s)) return false;
return true;
};
// [리턴 변수 선언 실시]
var returnData = false;
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
// [리턴 변수에 삽입 실시]
returnData = isNum(strData);
}
}
catch (exception) {
console.error("[C_Util_stringIsNumber] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_stringIsNumber] : [START]");
console.log("[TYPE] : " + String(typeof strData).toLowerCase().trim());
console.log("[INPUT] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
// [C_Util_stringMatchType 메소드 정의]
function C_Util_stringMatchType(intType, strData){
/**
* // -----------------------------------------
* [C_Util_stringMatchType 메소드 설명]
* // -----------------------------------------
* 설 명 : 정규식 수행 메소드 : 특정 문자로만 데이터가 구성되어있는지 확인 실시
* // -----------------------------------------
* INPUT :
* C_Util_stringMatchType( 1, "123" ); // [숫자 로만 구성]
* C_Util_stringMatchType( 2, "twokHELLO" ); // [영문자 로만 구성]
* C_Util_stringMatchType( 3, "투케이" ); // [한글 로만 구성]
* // -----------------------------------------
* RETURN : true (특정 문자로만 구성) / false (특정 문자로만 구성되어있지 않음)
* // -----------------------------------------
* */
// [리턴 변수 선언 실시]
var typeString = "";
var returnData = false;
// [로직 수행 실시]
try {
if (strData != null
&& String(typeof strData).toLowerCase().trim() != "undefined"
&& String(typeof strData).toLowerCase().trim() == "string"
&& JSON.stringify(strData) != "null"
&& strData != "null"
&& strData != ""){
if (intType == 1){
typeString = "숫자 구성 판단";
// [정규식 형태 선언 실시]
var reg_1 = /^[0-9]+$/;
// [리턴 변수에 삽입 실시]
returnData = reg_1.test(strData);
}
else if (intType == 2){
typeString = "영문자 구성 판단";
// [정규식 형태 선언 실시]
var reg_2 = /^[a-z|A-Z]+$/;
// [리턴 변수에 삽입 실시]
returnData = reg_2.test(strData);
}
else if (intType == 3) {
typeString = "한글 구성 판단";
// [정규식 형태 선언 실시]
var reg_3 = /^[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]+$/;
// [리턴 변수에 삽입 실시]
returnData = reg_3.test(strData);
}
else {
typeString = "타입 선택 에러";
}
}
}
catch (exception) {
console.error("[C_Util_stringMatchType] : [EXCEPTION] : " + exception.message);
}
///* [로그 출력 실시]
console.log("");
console.log("=========================================");
console.log("[C_Util_stringMatchType] : [START]");
console.log("[INPUT TYPE] : " + typeString);
console.log("[INPUT STRING] : " + strData);
console.log("[RETURN] : " + returnData);
console.log("=========================================");
console.log("");
// */
// [리턴 결과 반환]
return returnData;
};
[첨부 파일]
반응형
'투케이2K 유틸파일' 카테고리의 다른 글
Comments