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 32 33 34 35 36 37 38 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>배열/객체의 내용을 순서대로 처리하기</title> </head> <body> <ul id="list"></ul> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> $(function() { var animal = [ { name: '프렌치불독', type: '강아지'}, { name: '요크셔테리어', type: '강아지'}, { name: '닥스훈트', type: '강아지'}, { name: '스코티시폴드', type: '고양이'}, { name: '포메라니안', type: '강아지'}, ]; $.each( animal, function(index, value) { // '고양이'가 발견되면 출력을 중지 if(value.type == '고양이') { return false; } $('<li></li>') .append(value.name) .appendTo('#list'); } ); }); </script> </body> </html> |
웹사이트개발
2018년 6월 21일 목요일
[JavaScript 예제] 065 배열/객체의 내용을 순서대로 처리하기
2018년 6월 20일 수요일
[JavaScript 예제] 064 해시/객체들 병합하기
객체/해시(연관 배열)를 결합하려면 jQuery의 $.extend 메소드를 이용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>해시/객체들 병합하기</title> </head> <body> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> var data1 = { id:10, name:'Ava' } var data2 = { age:40, married:true } var data3 = { blood:'A', name:'David' } $.extend(data1, data2, data3); console.log(data1); // 결과: {id: 10, name: "David", age: 40, married: true, blood: "A"} </script> </body> </html> |
같은 이름 멤버가 존재하는 경우 나중의 것으로 덮어쓴다.
- 위의 경우에서 data1의 내용을 변경하지 않을려면 다음과 같이 한다.
- var merged = $.extend({}, data1, data2, data3);
[JavaScript 예제] 062 배열 가지고 놀기
배열의 요소를 추가/삭제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>배열 가지고 놀기</title> </head> <body> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> var data = ['팬더', '토끼', '코알라']; data.push('땅콩'); data.unshift('강아지'); console.log(data.toString()); // 결과: 강아지,팬더,토끼,코알라,땅콩 console.log(data.pop()); // 결과: 땅콩 console.log(data.toString()); // 결과: 강아지,팬더,토끼,코알라 console.log(data.shift()); // 결과: 강아지 console.log(data.toString()); // 결과: 팬더,토끼,코알라 </script> </body> </html> |
- push() / pop() 메소드
- 배열의 끝 요소를 넣고 뺀다
- unshift() / shift() 메소드
- 배열의 첫 요소를 넣고 뺀다
배열에 배열을 연결하기 ( concat() 메소드 )
배열 결합 ( 배열.join([구분문자]) )
배열 일부 빼내기 ( 배열.slice(시작위치 [,종료위치]) )
배열의 내용 치환하기 ( 배열.splice(시작위치, 요소수 [, 치환후의요소, ...] )
배열의 요소 정렬하기
- 배열.sort(function(m, n) {
...정렬규칙...
})
2018년 6월 12일 화요일
[JavaScript 예제] 055 정규 표현 사용
분류 | 패턴 | 매칭하는 문자열 |
기본 | xyz | 'xyz'라는 문자열 |
[xyz] | x, y, z 중 1개의 문자 | |
[^xyz] | x, y, z 이외의 1개의 문자 | |
[a-z] | a~z 사이의 1개의 문자 | |
x|y|z | x, y, z 중 하나 | |
양 지정 | x* | 0문자 이상의 x("to*"는 "t", "to", "too" 등에 일치) |
x? | 0또는 1문자의 x("to?"는 "t", "to"에 일치) | |
x+ | 1문자 이상의 x("to+"는 "to", "too" 등에 일치) | |
x{n} | x와 n회 일치("[0-9]{4}"는 4자리 숫자) | |
x{n,} | x와 n회 이상 일치("[0-9]{4,}"는 4자리 이상의 숫자) | |
x{m,n} | x와 m~n회의 일치("[0-9]{2,4}"는 2~4자리 숫자) | |
위치 지정 | ^ | 앞부분이 일치 |
$ | 끝부분이 일치 | |
문자 세트 | . | 임의의 1문자에 일치 |
\w | 대문자/소문자의 영문자, 숫자, 언더스코어(_)에 일치 ("[A-Za-z0-9_]"와 동일) |
|
\W | 문자 이외에 일치("[^\w]"와 동일) | |
\d | 숫자에 일치("[0-9]"와 동일) | |
\D | 숫자 이외에 일치("[^0-9]"와 동일 | |
\n | 개행(라인 피드)에 일치 | |
\r | 복귀(캐리지 리턴)에 일치 | |
\f | 폼피드에 일치 | |
\t | 탭 문자에 일치 | |
\v | 수직 탭에 일치 | |
\s | 공백 문자에 일치("[\n\r\t\v\f]"와 동일) | |
\S | 공배 이외의 문자에 일치("[^\s]"와 동일) | |
\~ | '~'에서 나타내는 문자 |
JavaScript에서 이들의 정규 표현식 패턴을 해석하고 검색 등 기능을 제공하는 것은 RegExp 객체의 역할이다.
- RegExp 생성자
- var 변수 = new RegExp(정규표현, 옵션)
- 정규 표현 리터럴
- var 변수 = /정규 표현/옵션
- 정규 표현식 옵션
- g
- 문자열 전체에 매치하는가
- i
- 대문자/소문자의 구분을 무시하는가
- m
- 개행 코드를 행 첫머리/행의 끝으로 인식하는가(여러행일 경우)
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>정규 표현</title> </head> <body> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> // test 메소드 var ex = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/gi; var str1 = '샘플 파일은 http://www.Infopub.co.kr/에서 다운로드 할 수 있음'; var str2 = '질문은 "게시판"으로 부탁드림'; console.log(ex.test(str1)); // 결과 : true console.log(ex.test(str2)); // 결과 : false // search 메소드 console.log(str1.search(ex)); // 결과 : 7 console.log(str2.search(ex)); // 결과 : -1 // match var str = str1; str += '질문은 HTTP://www.infopub.co.kr/로 부탁함'; var result = str.match(ex); for(var i=0, len = result.length; i<len; i++) { console.log(result[i]); } // 결과 // http://www.Infopub.co.kr/ // HTTP://www.infopub.co.kr/ // 정규 표현으로 문자열 치환 var ex1 = /(http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?)/gi; console.log(str1.replace(ex1, '<a href="$1">$1</a>')); // 결과 : 샘플 파일은 <a href="http://www.Infopub.co.kr/">http://www.Infopub.co.kr/</a>에서 다운로드 할 수 있음 // 정규 표현으로 문자열 문할 var ex2 = /[\s\n\t]/gi; console.log('JavaScript Project'.split(ex2)); // 결과 : (2) ["JavaScript", "Project"] console.log('JS\n커뮤니티'.split(ex2)); // 결과 : (2) ["JS", "커뮤니티"] console.log('JS Power프로젝트'.split(ex2)); // 결과 : (7) ["JS", "", "", "", "", "", "Power프로젝트"] </script> </body> </html> |
2018년 6월 11일 월요일
[JavaScript 예제] 045 반올림 & n진수 구하기
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 32 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>반올림</title> </head> <body> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> // 소수점 이하 수치 반올림하기 console.log(Math.ceil(4.56)); // 결과 : 5 console.log(Math.ceil(-4.56)); // 결과 : -4 console.log(Math.floor(4.56)); // 결과 : 4 console.log(Math.floor(-4.56)); // 결과 : -5 console.log(Math.round(4.56)); // 결과 : 5 console.log(Math.round(-4.56)); // 결과 : -5 // 임의의 자릿수에서 소수점을 반올림하기 var num = 123.456; console.log(num.toFixed(2)); // 결과 : 123.46 console.log(num.toFixed(5)); // 결과 : 123.45600 console.log(num.toPrecision(5)); // 결과 : 123.46 console.log(num.toPrecision(8)); // 결과 : 123.45600 // n진수 구하기 num = 255; console.log(num.toString(2)); // 결과 : 11111111 console.log(num.toString(16)); // 결과 : ff console.log(num.toString(36)); // 결과 : 73 </script> </body> </html> |
- 난수 구하기
- console.log(Math.floor((Math.random() * 100) + 1));
2018년 5월 29일 화요일
[JavaScript 예제] 044 계층을 가진 네임스페이스 정의하기
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 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>계층을 가진 네임스페이스 정의하기</title> </head> <body> <script> var namespace = function(ns) { // 네임스페이스를 '.'로 분할 var elems = ns.split('.'); var parent = window; // 이후 네임스페이스를 차례로 계층화하면서 등록 for(var i=0, len=elems.length; i<len; i++) { parent[elems[i]] = parent[elems[i]] || {}; parent = parent[elems[i]]; } return parent; }; // Myapp.Recipe.Samples 네임스페이스를 등록 var ns = namespace('Myapp.Recipe.Samples'); // 네임스페이스 예하에 클래스를 정의 ns.MyClass = function() {}; var c = new ns.MyClass(); console.log(c instanceof Myapp.Recipe.Samples.MyClass); // true </script> </body> </html> |
[JavaScript 예제] 043 클래스 이름 충돌 피하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>클래스 이름 충돌 피하기</title> </head> <body> <script> var Info = Info || {}; // Info가 비어 있는 경우에만 새로운 이름 공간을 작성 Info.Person = function(name, birth) { this.name = name; this.birth = birth; }; Info.Person.prototype.toString = function() { return this.name + ' _ _ ' + this.birth; } var p = new Info.Person('이정우', new Date(1981, 5, 16)); console.log(p.toString()); </script> </body> </html> |
피드 구독하기:
글 (Atom)