TIL

200121 Date(), RegExp, Ajax

잇나우 2020. 1. 21. 23:45
반응형

Date 생성자

날짜와 시간을 생성하는 생성자

// 생성자가 실행될때 그 순간의 날짜와 시간을 today변수에 대입
var today = new Date().toLocaleString();
//toLocaleString 날짜와 시간을 한국 표기법으로 변환해준다.
substring(x,y);
// x번째 글자부터 y번째 글자까지만 출력

day = today.substring(x, y);
// 지정한 시간마다 함수를 반복 호출
var 변수명 = setInterval(function(){
    실행문
}, 시간) // 1000 -> 1초

// 지정한 시간후에 함수 호출을 중지
setTimeout(function(){
    clearInterval(변수명);  //setInterval에서 설정한 변수명
}, 시간)

RegExp 정규표현식

특정한 규칙이나 패턴을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어. 문자열을 입력할때 특정한 조건을 주어 그 입력값이 맞는 검증하거나, 문자열에서 특정한 패턴이나 문자열이 있는지 검증하는 역할을 수행합니다.

// 정규표현식 객체 생성
// 형식1)
var 객체명 = new RegExp("패턴");

// 형식2)
var 객체명 = /패턴/;
예시)
var obj = new RegExp("코딩");
var str = "javascript python 자바 코딩";

// obj.test() : 패턴이 일치하면 true, 아니면 false
if(obj.test(str)){  // 'obj로 테스트(검사)하겠다 str를'
    console.log("해당 문자가 있다.");
} else {
    console.log("해당 문자가 없다.");
}

메타문자를 이용하여 정규 표현식 객체 만들기

/* 0~9까지 숫자가 오는지 검사 이걸 6번(6자리) - 1~4까지 숫자가 오는지 검사, 0~9까지 숫자가 오는지 검사 6자리 */
obj = /[0-9]{6}-[1234][0-9]{6}/;

// 한글 [가-힣]

// 영문 소문자 또는 숫자만 7개 이상 입력
obj = /([a-z]|[0-9]){7,}/;  //{7,}은 7개 이상이라는 의미
// 전체가 7자리 이상이여야 하기때문에 전체를()로 묶고 끝에 {7,}

Ajax

javascript(client)와 xml(server) 계열의 문서(xml, html, jsp, php, json)와 비동기통신 의미 웹페이지전체를 업데이트하지 않고 특정한 부분만 서버에서 데이터를 받아 웹페이지를 리로드하지 않고 데이터를 불러오는 방식이다.

// Ajax 객체 생성하는 방법
var 객체명 = new XMLHttpRequest()


 // 1. Ajax 객체 생성          
     var request = new XMLHttpRequest();

 // 2. 요청 준비 : 
 // open("전송방식", 'server url or file', [기본값:true]/false)
     request.open('get', "server url", true);
     // true : 비동기, false : 동기

 // 3. 데이터 요청 : send()
     request.send(); // 실제 통신 

 // 4. 데이터 수신 
     request.onreadystatechange = function(){
         if(request.readyState == 4){ // 서버 응답 완료 
                if(request.status == 200){ // 정상 응답 
                   // 비동기통신 성공 시 작업 내용  
                    result = document.getElementById("result");
                    result.innerHTML = request.responseText;  // text로 받는다.
                    // innerHTML : text -> html문서로 파싱
              }
          }
      }    

xml파일의 경우 직접 xml의 태그네임을 선택하여 element 가져온다.

result = document.getElementById("result");
var xml = request.responseXML;  // XML 형식으로 파싱하여 새로운 객체를 만듬
var name = xml.getElementsByTagName("name"); // xml의 name tag
var price = xml.getElementsByTagName("price");

for(var i=0; i < name.length; i++){
    result.innerHTML += "<h3>" + name[i].childNodes[0].nodeValue + "</h3>";
    result.innerHTML += "<h3>" + price[i].childNodes[0].nodeValue + "</h3>";
}

JSON파일은 내용이 객체로 이루어진 데이터 인데 JSON 파일 자체는 그것을 읽을 수가 없어서 따로 JSON으로 파싱을 해야한다.

result = document.getElementById("result");
// json 객체 파싱 : 응답 문자열 -> JSON 객체 생성
var obj = JSON.parse(request.responseText); // text로 가져온다음에 JSON으로 파싱
반응형

'TIL' 카테고리의 다른 글

200123 jQuery 기본문법, 함수  (0) 2020.01.24
200122 HTML5, CSS3 추가된 것들  (0) 2020.01.22
200120 DOM, event, object  (0) 2020.01.20
마크다운 (MarkDown)  (0) 2020.01.18
200117 Array, for문, function  (0) 2020.01.18