728x90
//-----------------------------------------------------------------------------
// 문자열내의 _findValue를 모두 _replaceValue로 바꾸어 준다
// ex : str.replaceAll("xx","bb");
// @return : String
//-----------------------------------------------------------------------------
String.prototype.replaceAll = function(_findValue, _replaceValue) {
return this.replace(new RegExp(_findValue,"g"), _replaceValue);
};
//-----------------------------------------------------------------------------
// 포맷된 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.getFormatVal = function(_fType) {
if (_fType == undefined) { this; }
_fType = _fType.trim();
if (_fType == "YM") { return this.fmtYm(); } // 년월
else if (_fType == "YMD") { return this.fmtYmd(); } // 년월일
else if (_fType == "YMD_FROMTO"){ return this.fmtYmdFromTo(); } // 년월일 from to
else if (_fType == "MONEY") { return this.fmtMoney(); } // 천단위 컴마
else if (_fType == "ZIP") { return this.fmtZip(); } // 우편번호
else if (_fType == "SAUPJA_NO") { return this.fmtSaupjaNo(); } // 사업자번호
else if (_fType == "CORP_NO") { return this.fmtCorpNo(); } // 법인번호
else if (_fType == "JUMIN_NO") { return this.fmtJuminNo(); } // 주민등록번호
else if (_fType == "ATTBTN") { return this.fmtAttBtn(); } // 첨부파일버튼
else if (_fType.indexOf("CUT")>=0) { return this.fmtCut(_fType.replace(/CUT/gi,"")); } // 제한글자 자르기
//else if (_fType == "HTML") { return this.fmtHTML(); } // HTML
else { return this; }
};
String.prototype.fmtCut = function(len) {
var val = this;
if (val.length > len) {
return val.substring(0,len) + "...";
} else {
return val;
}
}
//-----------------------------------------------------------------------------
// 년월 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtYm = function() {
var val = this.replaceAll('-','');
if (val.length >= 6)
return val.substring(0,4) + '-' + val.substring(4,6);
else
return val;
};
//-----------------------------------------------------------------------------
// 날짜 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtYmd = function() {
var val = this.replaceAll('-','');
if (val.length >= 8)
return val.substring(0,4) + '-' + val.substring(4,6) + '-' + val.substring(6,8);
else if (val.length >= 6)
return val.substring(0,4) + '-' + val.substring(4,6);
else
return val;
};
//-----------------------------------------------------------------------------
// 날짜 형태의 문자열 반환 From to
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtYmdFromTo = function() {
var val = this.replaceAll('-','');
if (val.length >= 16)
return val.substring(0,4) + '-' + val.substring(4,6) + '-' + val.substring(6,8) + ' ~ '
+ val.substring(8,12) + '-' + val.substring(12,14) + '-' + val.substring(14,16);
else if (val.length >= 8)
return val.substring(0,4) + '-' + val.substring(4,6) + '-' + val.substring(6,8);
else if (val.length >= 6)
return val.substring(0,4) + '-' + val.substring(4,6);
else
return val;
};
//-----------------------------------------------------------------------------
// 우편번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtZip = function() {
var val = this.replaceAll('-','');
if (val.length >= 6)
return val.substring(0,3) + '-' + val.substring(3,6) ;
else
return val;
};
//-----------------------------------------------------------------------------
// 사업자 번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtSaupjaNo = function() {
var val = this.replaceAll('-','');
if (val.length == 10)
return val.substring(0,3) + '-' + val.substring(3,5) + '-' + val.substring(5,10);
else
return val;
} ;
//-----------------------------------------------------------------------------
// 법인 번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtCorpNo = function() {
var val = this.replaceAll('-','');
if (val.length == 13)
return val.substring(0,6) + '-' + val.substring(6,13);
else
return val;
}
//-----------------------------------------------------------------------------
// 주민등록 번호 형태의 문자열 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtJuminNo = function() {
var val = this.replaceAll('-','');
if (val.length == 13)
return val.substring(0,6) + '-' + val.substring(6,13);
else
return val;
}
//-----------------------------------------------------------------------------
// 문자의 좌, 우 공백 제거
// @return : String
//-----------------------------------------------------------------------------
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
//-----------------------------------------------------------------------------
// 문자의 좌 공백 제거
// @return : String
//-----------------------------------------------------------------------------
String.prototype.ltrim = function() {
return this.replace(/(^\s*)/, "");
}
//-----------------------------------------------------------------------------
// 문자의 우 공백 제거
// @return : String
//-----------------------------------------------------------------------------
String.prototype.rtrim = function() {
return this.replace(/(\s*$)/, "");
}
//-----------------------------------------------------------------------------
// 문자열의 byte 길이 반환
// @return : int
//-----------------------------------------------------------------------------
String.prototype.byte = function() {
var cnt = 0;
for (var i = 0; i < this.length; i++) {
if (this.charCodeAt(i) > 127)
cnt += 2;
else
cnt++;
}
return cnt;
}
//-----------------------------------------------------------------------------
// 문자열의 byte 길이 반환
// @return : int
//-----------------------------------------------------------------------------
String.prototype.getByteLength = function() {
var cnt = 0;
for (var i = 0; i < this.length; i++) {
if (this.charCodeAt(i) > 127)
cnt += 2;
else
cnt++;
}
return cnt;
}
//-----------------------------------------------------------------------------
// 정수형으로 변환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.int = function() {
if(!isNaN(this)) {
return parseInt(this);
}
else {
return null;
}
}
//-----------------------------------------------------------------------------
// 숫자만 가져 오기
// @return : String
//-----------------------------------------------------------------------------
String.prototype.num = function() {
return (this.trim().replace(/[^0-9]/g, ""));
}
//-----------------------------------------------------------------------------
// 숫자에 3자리마다 , 를 찍어서 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fmtMoney = function() {
var num = this.trim();
var dotnum = num.indexOf('.') < 0 ? '' : num.substring(num.indexOf('.'), num.length);
var num = num.indexOf('.') < 0 ? num : num.substring(0, num.indexOf('.'));
while((/(-?[0-9]+)([0-9]{3})/).test(num)) {
num = num.replace((/(-?[0-9]+)([0-9]{3})/), "$1,$2");
}
return num + (dotnum == '' ? '' : dotnum) ;
}
//-----------------------------------------------------------------------------
// 숫자의 자리수(cnt)에 맞도록 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.padLeft = function(cnt, padStr) {
var digit = "";
if (this.length < cnt) {
for(var i = 0; i < cnt - this.length; i++) {
digit += padStr;
}
}
return digit + this;
}
//-----------------------------------------------------------------------------
// " -> " ' -> '로 바꾸어서 반환
// @return : String
//-----------------------------------------------------------------------------
String.prototype.quota = function() {
return this.replace(/"/g, """).replace(/'/g, "'");
}
//-----------------------------------------------------------------------------
// 파일명 추출
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fileName = function() {
var str = this;
str = (str.indexOf("\\") < 0) ? str : str.substring(str.lastIndexOf('\\')+1);
str = (str.indexOf("/") < 0) ? str : str.substring(str.lastIndexOf('/')+1);
return (str.indexOf(".") < 0) ? str : str.substring(0, str.lastIndexOf("."));
}
//-----------------------------------------------------------------------------
// 파일 확장자만 가져오기
// @return : String
//-----------------------------------------------------------------------------
String.prototype.fileExt = function() {
return (this.indexOf(".") < 0) ? "" : this.substring(this.lastIndexOf(".") + 1, this.length);
}
//-----------------------------------------------------------------------------
// URL에서 파라메터 제거한 순수한 url 얻기
// @return : String
//-----------------------------------------------------------------------------
String.prototype.uri = function() {
var arr = this.split("?");
arr = arr[0].split("#");
return arr[0];
}
/*---------------------------------------------------------------------------------*\
각종 체크 함수들
/*---------------------------------------------------------------------------------*/
//-----------------------------------------------------------------------------
// 정규식에 쓰이는 특수문자를 찾아서 이스케이프 한다.
// @return : String
//-----------------------------------------------------------------------------
String.prototype.meta = function() {
var str = this;
var result = ""
for(var i = 0; i < str.length; i++) {
if((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/).test(str.charAt(i))) {
result += str.charAt(i).replace((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/), "\\$1");
}
else {
result += str.charAt(i);
}
}
return result;
}
//-----------------------------------------------------------------------------
// 정규식에 쓰이는 특수문자를 찾아서 이스케이프 한다.
// @return : String
//-----------------------------------------------------------------------------
String.prototype.remove = function(pattern) {
return (pattern == null) ? this : eval("this.replace(/[" + pattern.meta() + "]/g, \"\")");
}
//-----------------------------------------------------------------------------
// 최소 최대 길이인지 검증
// str.isLength(min [,max])
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isLength = function() {
var min = arguments[0];
var max = arguments[1] ? arguments[1] : null;
var success = true;
if(this.length < min) {
success = false;
}
if(max && this.length > max) {
success = false;
}
return success;
}
//-----------------------------------------------------------------------------
// 최소 최대 바이트인지 검증
// str.isByteLength(min [,max])
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isByteLength = function() {
var min = arguments[0];
var max = arguments[1] ? arguments[1] : null;
var success = true;
if(this.byte() < min) {
success = false;
}
if(max && this.byte() > max) {
success = false;
}
return success;
}
//-----------------------------------------------------------------------------
// 공백이나 널인지 확인
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isBlank = function() {
var str = this.trim();
for(var i = 0; i < str.length; i++) {
if ((str.charAt(i) != "\t") && (str.charAt(i) != "\n") && (str.charAt(i)!="\r")) {
return false;
}
}
return true;
}
//-----------------------------------------------------------------------------
// 공백을 다른 문자로 교채
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.nvl = function() {
var arg = arguments[0] ? arguments[0] : "";
var str = this.trim();
if(this.isBlank()) return arg;
else return this;
}
//-----------------------------------------------------------------------------
// 숫자로 구성되어 있는지 학인
// arguments[0] : 허용할 문자셋
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isNum = function() {
return (/^[0-9]+$/).test(this.remove(arguments[0])) ? true : false;
}
//-----------------------------------------------------------------------------
// 숫자로 구성되어 있는지 학인
// arguments[0] : 허용할 문자셋
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isFloat = function() {
var rtn = false;
try {
return !isNaN(this.toString());
} catch(e) {
rtn = false;
}
return rtn;
}
//-----------------------------------------------------------------------------
// 영어만 허용 - arguments[0] : 추가 허용할 문자들
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEng = function() {
return (/^[a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}
//-----------------------------------------------------------------------------
// 영어대문자만 허용 - arguments[0] : 추가 허용할 문자들
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEngCap = function() {
return (/^[A-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}
//-----------------------------------------------------------------------------
// 숫자와 영어만 허용 - arguments[0] : 추가 허용할 문자들
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEngNum = function() {
return (/^[0-9a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}
//-----------------------------------------------------------------------------
// 숫자와 영어만 허용 - arguments[0] : 추가 허용할 문자들
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isNumEng = function() {
return this.isEngNum(arguments[0]);
}
String.prototype.isYmd = function() {
var s = this.replace(/-/gi,'');
if (s.length == 8) {
var pt = /^\d{4}\d{2}\d{2}/;
if (!pt.test(s)) return false;
} else if(s.length == 6) {
return false;
} else if(s.length == 4) {
return false;
} else {
return false;
}
var y = parseInt(s.substr(0,4), 10);
var m = parseInt(s.substr(4,2), 10) -1;
var d = parseInt(s.substr(6,2), 10);
var dt = new Date(y, m, d);
if (dt.getFullYear() == y && dt.getMonth() == m && dt.getDate() == d) {
return true;
} else {
return false;
};
}
//-----------------------------------------------------------------------------
// 아이디 체크 영어와 숫자만 체크 첫글자는 영어로 시작 - arguments[0] : 추가 허용할 문자들
// @return : boolean
//-----------------------------------------------------------------------------
var rejectIdList = "admin,server,administrator,manager,system,root,administrator,nibr,rhksflwk,wkdnjsrhks,test,dnabank,datacenter";
String.prototype.isUserid = function() {
//return (/^[a-zA-Z0-9_-]{8,20}$/).test(this.remove(arguments[0])) ? true : false;
var bbb = (/^[a-zA-Z](?=.*[a-zA-Z0-9_-]{3,20})(?=.*[0-9]).*$/).test(this.remove(arguments[0])) ? true : false;
if (bbb == false) {
return bbb;
} else {
var rejectArr = rejectIdList.split(",");
for (var i=0; i < rejectArr.length; i++) {
if (this.indexOf(rejectArr[i]) >= 0) {
return false;
}
}
}
return true;
}
String.prototype.isEngNum = function() {
return (/^[a-zA-Z0-9_-]{4,20}$/).test(this.remove(arguments[0])) ? true : false;
}
//-----------------------------------------------------------------------------
// 패스워드 체크 숫자,문자 조합 최소 9글자 - arguments[0] : 추가 허용할 문자들
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isPasswd = function() {
/*
var rejectPwList = rejectIdList;
var bbb = (/^.*(?=.{6,20})(?=.*[a-zA-Z0-9,!,@,$,%,^,*]).*$/).test(this.remove(arguments[0])) ? true : false;
var ccc = (/(\w)\1\1\1/).test(this.remove(arguments[0])) ? true : false;
//var bbb = (/^[a-zA-Z0-9_-]{8,20}$/).test(this.remove(arguments[0])) ? true : false;
if (bbb == false || ccc == true ) {
return false;
} else {
var rejectArr = rejectPwList.split(",");
for (var i=0; i < rejectArr.length; i++) {
if (this.indexOf(rejectArr[i]) >= 0) {
return false;
}
}
}
*/
//return true;
// 숫자,소문자,대문자,특수문자 최소 9글자
return (/^.*(?=.{9,20})(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*]).*$/).test(this.remove(arguments[0])) ? true : false;
}
//-----------------------------------------------------------------------------
// 한글 체크 - arguments[0] : 추가 허용할 문자들
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isKor = function() {
return (/^[가-힣]+$/).test(this.remove(arguments[0])) ? true : false;
}
//-----------------------------------------------------------------------------
// 주민번호 체크 - arguments[0] : 주민번호 구분자
// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isJumin = function() {
var arg = arguments[0] ? arguments[0] : "";
var jumin = eval("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[1234]{1}[0-9]{6}$/)");
if(jumin == null) {
return false;
}
else {
jumin = jumin.toString().num().toString();
}
// 생년월일 체크
var birthYY = (parseInt(jumin.charAt(6)) == (1 ||2)) ? "19" : "20";
birthYY += jumin.substr(0, 2);
var birthMM = jumin.substr(2, 2) - 1;
var birthDD = jumin.substr(4, 2);
var birthDay = new Date(birthYY, birthMM, birthDD);
if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
return false;
}
var sum = 0;
var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
var last = parseInt(jumin.charAt(12));
for(var i = 0; i < 12; i++) {
sum += parseInt(jumin.charAt(i)) * num[i];
}
return ((11 - sum % 11) % 10 == last) ? true : false;
}
//-----------------------------------------------------------------------------
// 외국인 등록번호 체크 - arguments[0] : 등록번호 구분자
// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isForeign = function() {
var arg = arguments[0] ? arguments[0] : "";
var jumin = eval("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[5678]{1}[0-9]{1}[02468]{1}[0-9]{2}[6789]{1}[0-9]{1}$/)");
if(jumin == null) {
return false;
}
else {
jumin = jumin.toString().num().toString();
}
// 생년월일 체크
var birthYY = (parseInt(jumin.charAt(6)) == (5 || 6)) ? "19" : "20";
birthYY += jumin.substr(0, 2);
var birthMM = jumin.substr(2, 2) - 1;
var birthDD = jumin.substr(4, 2);
var birthDay = new Date(birthYY, birthMM, birthDD);
if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
return false;
}
if((parseInt(jumin.charAt(7)) * 10 + parseInt(jumin.charAt(8))) % 2 != 0) {
return false;
}
var sum = 0;
var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
var last = parseInt(jumin.charAt(12));
for(var i = 0; i < 12; i++) {
sum += parseInt(jumin.charAt(i)) * num[i];
}
return (((11 - sum % 11) % 10) + 2 == last) ? true : false;
}
//-----------------------------------------------------------------------------
// 사업자번호 체크 - arguments[0] : 등록번호 구분자
// XX-XXX-XXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isSaupjaNo = function() {
var arg = arguments[0] ? arguments[0] : "";
var biznum = eval("this.match(/[0-9]{3}" + arg + "[0-9]{2}" + arg + "[0-9]{5}$/)");
if(biznum == null) {
return false;
}
else {
biznum = biznum.toString().num().toString();
}
var sum = parseInt(biznum.charAt(0));
var num = [0, 3, 7, 1, 3, 7, 1, 3];
for(var i = 1; i < 8; i++) sum += (parseInt(biznum.charAt(i)) * num[i]) % 10;
sum += Math.floor(parseInt(parseInt(biznum.charAt(8))) * 5 / 10);
sum += (parseInt(biznum.charAt(8)) * 5) % 10 + parseInt(biznum.charAt(9));
return (sum % 10 == 0) ? true : false;
}
//-----------------------------------------------------------------------------
// 법인 등록번호 체크 - arguments[0] : 등록번호 구분자
// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isCorpNo = function() {
var arg = arguments[0] ? arguments[0] : "";
var corpnum = eval("this.match(/[0-9]{6}" + arg + "[0-9]{7}$/)");
if(corpnum == null) {
return false;
}
else {
corpnum = corpnum.toString().num().toString();
}
var sum = 0;
var num = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
var last = parseInt(corpnum.charAt(12));
for(var i = 0; i < 12; i++) {
sum += parseInt(corpnum.charAt(i)) * num[i];
}
return ((10 - sum % 10) % 10 == last) ? true : false;
}
//-----------------------------------------------------------------------------
// 이메일의 유효성을 체크
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEmail = function() {
return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/).test(this.trim());
}
//-----------------------------------------------------------------------------
// 전화번호 체크 - arguments[0] : 전화번호 구분자
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isPhone = function() {
var arg = arguments[0] ? arguments[0] : "";
return eval("(/(02|0[3-9]{1}[0-9]{1})" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}
//-----------------------------------------------------------------------------
// 핸드폰번호 체크 - arguments[0] : 핸드폰 구분자
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isMobile = function() {
var arg = arguments[0] ? arguments[0] : "";
return eval("(/01[016789]" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}
//-----------------------------------------------------------------------------
// 한글 숫자 123456 일경우 (십이만삼천사백오십육)
// @return : 한글화된 숫자
//-----------------------------------------------------------------------------
String.prototype.moneyToKOR = function() {
var chknum = this;
num = chknum;
num = num.split(',').join('');
var arr = num.split('.');
var num = new Array();
for (i = 0; i <= arr[0].length-1; i++) {
num[i] = arr[0].substr(arr[0].length-1-i,1);
if(i%3 == 0 && i != 0) num[i] += ',';
}
num = num.reverse().join('');
if (!arr[1])
chknum.value = num;
else
chknum.value = num+'.'+arr[1];
var won = new Array();
re = /^[1-9][0-9]*$/;
num = chknum.toString().split(',').join('');
if (!re.test(num)) {
chknum.value = '';
hanview.innerHTML = '';
} else {
var price_unit0 = new Array('','일','이','삼','사','오','육','칠','팔','구');
var price_unit1 = new Array('','십','백','천');
var price_unit2 = new Array('','만','억','조','경','해','시','양','구','간','정');
for(i = num.length-1; i >= 0; i--) {
won[i] = price_unit0[num.substr(num.length-1-i,1)];
if(i > 0 && won[i] != '') won[i] += price_unit1[i%4];
if(i % 4 == 0) won[i] += price_unit2[(i/4)];
}
for(i = num.length-1; i >= 0; i--) {
if(won[i].length == 2) won[i-i%4] += '-';
if(won[i].length == 1 && i > 0) won[i] = '';
if(i%4 != 0) won[i] = won[i].replace('일','');
}
won = won.reverse().join('').replace(/-+/g,'');
return won;
}
}
728x90
'개발 > WEB PROGRAMMING' 카테고리의 다른 글
[ JAVASCRIPT ] Cookie 관리해보자! 실개발 코딩하기 - Let's manage cookies! Real development coding (0) | 2020.11.07 |
---|---|
JAVASCRIPT 문자열 값 체크 (값이 없는 경우 false 반환) (0) | 2020.11.06 |
[ 공통 ] UTIL성 JAVASCRIPT 코드(실개발자 유용한 꿀팁) (0) | 2020.03.26 |
실적용 가능한 String Util성 JAVA 모음집 1탄 (0) | 2020.03.26 |
SVN 비밀번호 세팅한 이력 삭제 (0) | 2020.03.26 |
댓글