내가 찾은 검색어 javascript function 개발

청포도봉봉이·2022년 5월 13일
1

javascript

목록 보기
1/1
post-thumbnail
//쿠키 생성
function setCookie(key, value, expiredays) {
    var todayDate = new Date();
    todayDate.setDate(todayDate.getDate() + expiredays);
    document.cookie = key + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}

//쿠키 가져오기
function getCookie(key) {
    var result = null;
    var cookie = document.cookie.split(';');
    cookie.some(function (item) {
        // 공백을 제거
        item = item.replace(' ', '');
 
        var dic = item.split('=');
 
        if (key === dic[0]) {
            result = dic[1];
            return true;    // break;
        }
    });
    return result;
}

//찾은 검색어 저장
function setSearchWord(str) {
	if(getCookie("searchword") != null && getCookie("searchword") !== undefined){
		let searchword = unescape(getCookie("searchword"));
		
		//10개 이상일때 마지막꺼 삭제하기
		if(searchword.split("/").length >= 10){
			searchword = searchword.substring(0, searchword.lastIndexOf("/"));
		}
		
		//앞에서 찾은 문자의 indexOf와 마지막에 찾은 lastIndexOf가 일치할 않는 경우 일치하는 않는 단어라고 판단 
		if(searchword.indexOf(str) != searchword.lastIndexOf(str)){
			let imsi = str + "/" + searchword;
			setCookie("searchword", imsi, 1);
			return false;
		}
		
		//같은 문자가 포함되었을때 삭제 후 갱신처리
		if(searchword.indexOf(str) != -1){
			let start = searchword.indexOf(str)-1;
			if(start < 0) start = 0;
			let end = searchword.indexOf(str)+str.length;
			
			let imsi = searchword.substring(0, start);
			let imsi2 = searchword.substring(end, searchword.length);
			
			searchword = imsi + imsi2 + "/" + str;
			
			//searchword가 / 로 시작시 삭제처리.
			if(searchword.indexOf("/") == 0){
				searchword = searchword.substring(1, searchword.length);
			}
			setCookie("searchword", searchword, 1);
			return false;
		}
		
		let imsi = str + "/" + searchword;
		setCookie("searchword", imsi, 1);
		return false;
	}
	
	setCookie("searchword", str, 1);
}

//검색어 삭제
function delSearchWord(thisobj, str) {
	
	if(getCookie("searchword") == null || getCookie("searchword") === undefined){
		return false;
	}
	
	let searchword = unescape(getCookie("searchword"));
	if(searchword.indexOf(str) != -1){
		let start = searchword.indexOf(str)-1;
		if(str < 0) str = 0;
		let end = searchword.indexOf(str)+str.length;
		
		let imsi = searchword.substring(0, start);
		let imsi2 = searchword.substring(end, searchword.length);
		
		searchword = imsi + imsi2;
		setCookie("searchword", searchword, 1);
		$(thisobj).closest("dd").remove();
	}
}

profile
서버 백엔드 개발자

0개의 댓글