티스토리 뷰

 자주 쓰이는 String prototype 에 대한 정리 (긁어모으기!)

 

/**
* 문자열 replaceAll
*/
String.prototype.replaceAll = function (target, replacement) {
	return this.split(target).join(replacement);
};

/**
* trim (공백 제거)
*/
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, "");
}; 

/**
* ltrim
*/
String.prototype.ltrim = function() {
	return this.replace(/^\s+/, "");
}; 

/**
* rtrim
*/
String.prototype.rtrim = function() {
	return this.replace(/\s+$/, "");
}; 

/**
* lpadding (왼쪽에 padding 문자열로 채우기)
*/
String.prototype.lpad = function(maxLength, fillChar) {
	var srcStr = this.substr(0, maxLength);
	var cnt = 0;
	
	for (var inx = srcStr.length; inx < maxLength; inx++) {
		srcStr = fillChar.charAt(cnt) + srcStr;
		cnt++;
		cnt = (cnt == fillChar.length) ? 0 : cnt;
	}
	return srcStr;
};

/**
* rpadding
*/
String.prototype.rpad = function(maxLength, fillChar) {
	var srcStr = this.substr(0, maxLength);
	var cnt = 0;
	
	for (var inx = srcStr.length; inx < maxLength; inx++) {
		srcStr = srcStr + fillChar.charAt(cnt);
		cnt++;
		cnt = (cnt == fillChar.length) ? 0 : cnt;
	}
	
	return srcStr;
}; 

/**
* null check
*/
String.prototype.isNull = function(pattern) {
	if (this == undefined || this == null || this == '')
		return true;
	return false;
}; 

/**
* Alpha check
*/
String.prototype.isAlpha = function() {
	var str = this.trim();
	
	if (str.isNull())
		return true;
	return (/^[a-zA-Z]+$/).test(str);
}; 

/**
* Alpha check (공백 허용)
*/
String.prototype.isAlphaBlank = function() {
	var str = this.trim();
	
	if (str.isNull())
		return true;
	return (/^[\sa-zA-Z]+$/).test(str);
}; 

/**
* Alpha/Numeric Check
*/
String.prototype.isAlphaNum = function() {
	var str = this.trim();
	
	if (str.isNull())
		return true;
	return (/^[0-9a-zA-Z]+$/).test(str);
};

/**
* Numeric Check
*/
String.prototype.num = function() {
	return (this.trim().match(/^[0-9]+$/)) ? true : false;
}

/**
* 한글 Check
*/
String.prototype.kor = function() {
	return (this.trim().match(/^[가-힣]+$/)) ? true : false;
}

/**
* getLength
*/
String.prototype.getLength = function() {
	return this.length;
}

/**
* getByte
*/
String.prototype.getByte = function(utf8Yn) {
	var str = this.trim();
	
	if(arguments[0] == null){
		utf8Yn = true;
	}
	
	var utf8Add = (utf8Yn == true) ? 2 : 1;
	var len = 0;
	
	for (var i = 0; i < str.length; i++, len++) {
		if (str.charCodeAt(i) < 0 || str.charCodeAt(i) > 127)
			len += utf8Add; // add Extra 2 when charSet is UTF-8
	}
	return len;
}; 

/**
* email check
*/
String.prototype.isEmail = function() {
	var str = this.trim();
	if (str.isNull())
		return true;
	return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/).test(str);
};

/**
* mobile Check (000-0000-0000)
*/
String.prototype.mobile = function() {
	var num = this.trim().onlyNum();
	num = num.substring(0, 3) + "-" + num.substring(3, num.length - 4) + "-" + num.substring(num.length - 4, num.length);
	num = num.trim().match(/^01[016789]{1}-[1-9]{1}[0-9]{2,3}-[0-9]{4}$/);
	return (num) ? true : false;
}

/**
* 주민번호 체크 (000000-0000000)
*/
String.prototype.jumin = function() {
	var num = this.trim().onlyNum();
	if(num.length == 13) {
		num = num.substring(0, 6) + "-" + num.substring(6, 13);
	} else {
		return false;
	}
	num = num.match(/^([0-9]{6})-?([0-9]{7})$/);
	if(!num) return false;
	var num1 = RegExp.$1;
	var num2 = RegExp.$2;
	if(!num2.substring(0, 1).match(/^[1-4]{1}$/)) return false;
	num = num1 + num2;
	var sum = 0;
	var last = num.charCodeAt(12) - 0x30;
	var bases = "234567892345";
	for (i=0; i<12; i++) {
		sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
	}
	var mod = sum % 11;
	return ((11 - mod) % 10 == last) ? true : false;
}
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31