PageSourceSearch

https://kovihouse.ai/resources/js/commonjs-stringutil.js

js kovihouse.ai collected 2026-10-05 12:09:28 UTC 10,468 bytes, 428 lines download raw bytes

1/**
2 * 
3 * 	
4 * @author childmild 설명 : stringutil 관련 자바스크립트 소스파일 만든날 : 17.04.10
5 * 
6 */
7
8/**
9 * 정규식에 쓰이는 특수문자를 찾아서 escape 한다.
10 * 
11 * @return 특수문자가 escape된 문자열
12 */
13String.prototype.meta = function() {
14	var str = this;
15	var result = '';
16	for (var i = 0; i < str.length; i++) {
17		if ((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/).test(str.charAt(i))) {
18			result += str.charAt(i).replace((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/), "\\$1");
19		} else {
20			result += str.charAt(i);
21
22		}
23	}
24	return result;
25}
26
27/**
28 * 정규식에 쓰이는 특수문자를 찾아서 escape하여 반환한다.
29 * 
30 * 
31 * @return 특수문자가 escape된 문자열
32 */
33String.prototype.remove = function(pattern) {
34	return (pattern == null) ? this : eval("this.replace(/[" + pattern.meta()+ "]/g, \"\")");
35}
36
37/**
38 * 문자열이 대상 문자열과 동일한 값인지의 여부를 반환한다.
39 * 
40 * @param tagetStr -
41 *            비교대상 문자열
42 * @return 동일값 여부
43 */
44String.prototype.eq = function(tagetStr) {
45	return (tagetStr != null && typeof (tagetStr) != 'undefined' && this == tagetStr);
46}
47
48/**
49 * 문자열이 대상 문자열과 다른 값인지의 여부를 반환한다.
50 * 
51 * @param tagetStr -
52 *            비교대상 문자열
53 * @return 다른값 여부
54 */
55String.prototype.neq = function(tagetStr) {
56	return !this.eq(tagetStr);
57}
58
59/**
60 * 문자열이 숫자형인지의 여부를 반환한다.
61 * 
62 * @param exceptChar -
63 *            추가 허용할 문자
64 * @return 숫자형여부
65 */
66String.prototype.isNum = function(exceptChar) {
67	return (/^[0-9]+$/).test(this.remove(exceptChar)) ? true : false;
68}
69
70/**
71 * 문자열을 숫자형으로 캐스팅한다.
72 * 
73 * @return 캐스팅된 숫자
74 */
75String.prototype.toNum = function() {
76	if (this.isNum()) {
77		return Number(this);
78	} else {
79		return -1;
80	}
81}
82
83/**
84 * 문자열을 3자리마다 콤마를 찍어서 반환한다.
85 * 
86 * @return 콤마가 첨가된 문자열
87 */
88String.prototype.money = function() {
89	var num = this.replace(/,/g, "");
90	while ((/(-?[0-9]+)([0-9]{3})/).test(num)) {
91		num = num.replace((/(-?[0-9]+)([0-9]{3})/), "$1,$2");
92	}
93	return num;
94}
95
96/**
97 * 문자열의 byte 길이를 반환한다.
98 * 
99 * @return 문자열의 byte 길이
100 */
101String.prototype.getByte = function() {
102	var cnt = 0;
103	for (var i = 0; i < this.length; i++) {
104		if (this.charCodeAt(i) > 127) {
105			cnt += 2;
106		} else {
107			cnt++;
108		}
109	}
110	return cnt;
111}
112
113/**
114 * 문자열이 지정한 최소길이 이상인지의 여부를 반환한다.
115 * 
116 * @param minLen -
117 *            최소길이
118 * @return 최소길이 이상인지의 여부
119 */
120String.prototype.isMin = function(minLen) {
121	return this.length >= minLen;
122}
123
124/**
125 * 문자열이 지정한 최대길이 이하인지의 여부를 반환한다.
126 * 
127 * @param maxLen -
128 *            최대길이
129 * @return 최대길이 이하인지의 여부
130 */
131String.prototype.isMax = function(maxLen) {
132	return this.length <= maxLen;
133}
134
135/**
136 * 문자열이 지정한 최소바이트수 이상인지의 여부를 반환한다.
137 * 
138 * @param minByte -
139 *            최소바이트수
140 * @return 최소바이트수 이상인지의 여부
141 */
142String.prototype.isMinByte = function(minByte) {
143	return this.getByte() >= minByte;
144}
145
146/**
147 * 문자열이 지정한 최대바이트수 이하인지의 여부를 반환한다.
148 * 
149 * @param maxByte -
150 *            최대바이트수
151 * @return 최대바이트수 이하인지의 여부
152 */
153String.prototype.isMaxByte = function(maxByte) {
154	return this.getByte() <= maxByte;
155}
156
157/**
158 * 문자열이 영문인경우 대문자로 치환한다.
159 * 
160 * @return 대문자로 치환된 문자열
161 */
162String.prototype.upper = function() {
163	return this.toUpperCase();
164}
165
166/**
167 * 문자열이 영문인경우 소문자로 치환한다.
168 * 
169 * @return 소문자로 치환된 문자열
170 */
171String.prototype.lower = function() {
172	return this.toLowerCase();
173}
174
175/**
176 * 문자열 좌우 공백을 제거한다.
177 * 
178 * @return 좌우 공백 제거된 문자열
179 */
180String.prototype.trim = function() {
181	return this.replace(/^\s+/g, '').replace(/\s+$/g, '');
182}
183
184/**
185 * 문자열 좌 공백을 제거한다.
186 * 
187 * @return 좌 공백 제거된 문자열
188 */
189String.prototype.ltrim = function() {
190	return this.replace(/(^\s*)/, "");
191}
192
193/**
194 * 문자열 우 공백을 제거한다.
195 * 
196 * @return 우 공백 제거된 문자열
197 */
198String.prototype.rtrim = function() {
199	return this.replace(/(\s*$)/, "");
200}
201
202/**
203 * 문자열에서 모든 교체할 문자열을 대체 문자열로 치환한다.
204 * 
205 * @param pattnStr -
206 *            찾을 문자열
207 * @param chngStr -
208 *            대체 문자열
209 * @return 치환된 문자열
210 */
211String.prototype.replaceAll = function(pattnStr, chngStr) {
212	var retsult = "";
213	var trimStr = this.replace(/(^\s*)|(\s*$)/g, "");
214
215	if (trimStr && pattnStr != chngStr) {
216		retsult = trimStr;
217		while (retsult.indexOf(pattnStr) > -1) {
218			retsult = retsult.replace(pattnStr, chngStr);
219		}
220	}
221	return retsult;
222}
223
224/**
225 * 문자열을 거꾸로 치환한다.
226 * 
227 * @return 거꾸로 치환된 문자열
228 */
229String.prototype.reverse = function() {
230	var result = '';
231
232	for (var i = this.length - 1; i > -1; i--) {
233		result += this.substring(i, i + 1);
234	}
235	return result;
236}
237
238/**
239 * 지정한 길이만큼 원본 문자열 왼쪽에 패딩문자열을 채운다.
240 * 
241 * @param len -
242 *            채울 길이
243 * @param padStr -
244 *            채울 문자열
245 * @return 채워진 문자열
246 */
247String.prototype.lpad = function(len, padStr) {
248	var result = '';
249	var loop = Number(len) - this.length;
250	for (var i = 0; i < loop; i++) {
251		result += padStr.toString();
252	}
253	return result + this;
254}
255
256/**
257 * 지정한 길이만큼 원본 문자열 오른쪽에 패딩문자열을 채운다.
258 * 
259 * @param len -
260 *            채울 길이
261 * @param padStr -
262 *            채울 문자열
263 * @return 채워진 문자열
264 */
265String.prototype.rpad = function(len, padStr) {
266
267	var result = '';
268	var loop = Number(len) - this.length;
269	for (var i = 0; i < loop; i++) {
270		result += padStr.toString();
271	}
272	return this + result;
273}
274
275/**
276 * 문자열이 공백이나 널인지의 여부를 반환한다.
277 * 
278 * @return 공백이나 널인지의 여부
279 */
280String.prototype.isBlank = function() {
281	var str = this.trim();
282	for (var i = 0; i < str.length; i++) {
283		if ((str.charAt(i) != "\t") && (str.charAt(i) != "\n")&& (str.charAt(i) != "\r")) {
284			return false;
285		}
286	}
287	return true;
288}
289
290/**
291 * 문자열이 영어만으로 구성되어 있는지의 여부를 반환한다.
292 * 
293 * @param exceptChar -
294 *            추가 허용할 문자
295 * @return 영어만으로 구성되어 있는지의 여부
296 */
297String.prototype.isEng = function(exceptChar) {
298	return (/^[a-zA-Z]+$/).test(this.remove(exceptChar)) ? true : false;
299}
300
301/**
302 * 문자열이 숫자와 영어만으로 구성되어 있는지의 여부를 반환한다.
303 * 
304 * @param exceptChar -
305 *            추가 허용할 문자
306 * @return 숫자와 영어만으로 구성되어 있는지의 여부
307 */
308String.prototype.isEngNum = function(exceptChar) {
309	return (/^[0-9a-zA-Z]+$/).test(this.remove(exceptChar)) ? true : false;
310}
311
312/**
313 * 문자열이 한글만으로 구성되어 있는지의 여부를 반환한다.
314 * 
315 * @param exceptChar -
316 *            추가 허용할 문자
317 * @return 한글만으로 구성되어 있는지의 여부
318 */
319String.prototype.isKor = function(exceptChar) {
320	return (/^[가-힣]+$/).test(this.remove(exceptChar)) ? true : false;
321}
322
323/**
324 * 문자열이 숫자와 한글만으로 구성되어 있는지의 여부를 반환한다.
325 * 
326 * @param exceptChar -
327 *            추가 허용할 문자
328 * @return 숫자와 한글만으로 구성되어 있는지의 여부
329 */
330String.prototype.isKorNum = function(exceptChar) {
331	return (/^[0-9가-힣]+$/).test(this.remove(exceptChar)) ? true : false;
332}
333
334/**
335 * 문자열이 영문과 한글만으로 구성되어 있는지의 여부를 반환한다.
336 * 
337 * @param exceptChar -
338 *            추가 허용할 문자
339 * @return 영문과 한글만으로 구성되어 있는지의 여부
340 */
341String.prototype.isEngKor = function(exceptChar) {
342	return (/^[a-zA-Z가-힣]+$/).test(this.remove(exceptChar)) ? true : false;
343}
344
345/**
346 * 이메일 주소의 유효성 여부를 반환한다.
347 * 
348 * @return 유효성 여부
349 */
350String.prototype.isEmail = function() {
351	return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/).test(this.trim());
352}
353
354/**
355 * 전화번호의 유효성 여부를 반환한다.
356 * 
357 * @param dlm -
358 *            구분자(default : '-')
359 * @return 유효성 여부
360 */
361String.prototype.isPhone = function(dlm) {
362	var arg = dlm != null && typeof (dlm) != 'undefined' && dlm.neq('') ? dlm
363			: '-';
364	return eval("(/(02|0[3-9]{1}[0-9]{1})" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
365}
366
367/**
368 * 휴대폰번호 유효성 여부를 반환한다.
369 * 
370 * @param dlm -
371 *            구분자(default : '-')
372 * @return 유효성 여부
373 */
374String.prototype.isMobile = function(dlm) {
375	var arg = dlm != null && typeof (dlm) != 'undefined' && dlm.neq('') ? dlm
376			: '-';
377	return eval("(/01[016789]" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
378}
379
380/**
381 * 날짜의 유효성 여부를 반환한다.
382 * 
383 * @return 유효성 여부
384 */
385String.prototype.isDate = function() {
386	var result = false;
387	if (this.length == 8 && this.isNum()) {
388		var y = Number(this.substring(0, 4));
389		var m = Number(this.substring(4, 6));
390		var d = Number(this.substring(6, 8));
391		var inDate = new Date(y, m - 1, d);
392		result = (Number(inDate.getFullYear()) == y&& Number(inDate.getMonth() + 1) == m && Number(inDate.getDate()) == d);
393	}
394	return result;
395}
396
397/**
398 * 파일의 확장자를 구하여 반환한다.
399 * 
400 * @return 확장자
401 */
402String.prototype.ext = function() {
403	alert('2222222');
404	return (this.indexOf(".") < 0) ? "" : this.substring(
405			this.lastIndexOf(".") + 1, this.length);
406}
407
408/**
409 * null 이나 빈값을 기본값으로 변경
410 * @param str       입력값
411 * @param defaultVal    기본값(옵션)
412 * @returns {String}    체크 결과값
413 */
414function nvl(str) {
415//     alert('test : ' +str);
416	if(str == "" || str == null || str == undefined || ( str != null && typeof str == "object" && !Object.keys(str).length )){
417		return "-";
418	}
419
420/*    if (typeof str == "undefined" || str == null || str == '' || str == "undefined") {
421        return "-";
422    }*/
423     
424    return str;
425}
426
427
428

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.