/* 특정 쿠기 삭제
ck_name : 쿠키 이름
*/
function del_cookie(ck_name) {
    set_cookie(ck_name, "", 0 , 0);
}

 

del_cookie('site_name');        // 쿠키 삭제


 

참고> javascript cookie 생성

Posted by 은둔고수

/* 쿠키 생성
초단위
ck_name : 쿠키 이름
ck_val : 쿠키 값
t_type : 시간 종류
t_val : 시간 값
*/
function set_cookie(ck_name, ck_val, t_type, t_val) {
    var expire = new Date();
    var ary_time_type = [1000, (1000*60), (1000*60*60), (1000*60*60*24)]; // 초, 분, 시, 일
    v = (ary_time_type[t_type] * t_val);
    expire.setTime(expire.getTime() + v);
    cookies = ck_name + '=' + escape(ck_val) + '; path=/ '; // 한글 깨짐 막기 : escape(cValue)

    if(typeof t_val != 'undefined') cookies += ';expires=' + expire.toGMTString() + ';';

    document.cookie = cookies;

}

 

 

set_cookie('site_name', 'okkks.tistory.com', 0, 10);    // 쿠키 생성(보유시간:10초)

 

 

참고> javascript cookie 삭제

Posted by 은둔고수

json 형식으로 넘어오는 데이터 중 \n 부분을 자바스크립트에서 처리하는 방법

 

[php]

<?

$ary_rtn = array();

$ary_rtn['result'] = false;

$ary_rtn['msg'] = "안녕하세요\okkks.tistory.com 블로그에 방문해주셔서 감사합니다.";

echo json_encode($ary_rtn);    // php json encode

exit;

?>

 

 

[javascript/jquery]

 $.post(
  '전송할 json 파일경로'
  ,전송할 데이터들
  ,function(data){
   var rtn_json = $.parseJSON(data); // 데이터를 JSON으로 파싱

    if(rtn_json['result']) {
     location.replace('/');
   } else if(rtn_json['msg']) {
    var msg = rtn_json['msg'].replace(/\\n/g, '\n');
    alert(msg);
   } else alert('취소되었습니다.');
  }
 );

 

 

 

[ 처리 없이 바로 출력했을 경우] 

 

 

[\n 처리를 한 후 출력했을 경우]


더보기>

- php javascript jquery json 한글 깨짐 - json_encode() parseJSON()

Posted by 은둔고수

키코드(event.keycode)값을 알려주는 사이트 : http://www.w3.org/2002/09/tests/keys.html

37 : 왼쪽 화살표 (←)

38 : 위쪽 화살표 (↑)

39 : 오른쪽 화살표 (→)

40 : 아래쪽 화살표 (↓)

13 : 엔터키 (Enter Key)

Posted by 은둔고수

substring

첫 번째 인자는 시작지점, 두 번째 인자는 끝지점(옵션)

예>

var s = 'ABC1234';

s.substring(3) -> 1234

s.substring(0,3) -> ABC

 

substr

첫 번째 인자는 시작지점, 두 번째 인자는 추출할 문자열의 길이

예>

s.substr(3,1) -> 1

s.substr(0,3) -> ABC

s.substr(3,4) -> 1234 

Posted by 은둔고수

 

생년월일을 입력받아 자바스크립트를 이용해서 미성년자를 확인한다.

입력 양식 : 19940101(숫자만 입력)

function birthday_chk(f)
{
 f.value = f.value.only_number();

 if(f.value == '')
 {
  alert('생년월일을 작성해주세요.');
  return false;
 }

 else if(f.value.length != 8)
 {
  alert('생년월일을 정확히 작성해 주세요.\n(예. 1994년 1월 1일생 -> 19940101로 작성)');
  return false;
 }

 //=== 확인 : 생년월일 형식 // 시작

 var adt = 19; // 성년 나이
 var adt_max = 100; // 100세

 var d = new Date();
 var y = d.getFullYear();
 var m = (d.getMonth() + 1);
 var d = d.getDate();

 // 날짜 포맷 맞추기
 if(m < 10) m = '0' + m;
 if(d < 10) d = '0' + d;

 var birthday_y = parseInt(f.value.substr(0,4));
 var birthday_m = f.value.substr(4,2);
 var birthday_d = f.value.substr(6,2);
 var birthday_md = f.value.substr(4,4);

if(age < adt || (age == adt && parseInt(('1' + birthday_md)) > parseInt(('1' + m + d))))
 {
  alert('19세 미만은 이용하실 수 없습니다.');
  return false;
 }

 if(birthday_y < parseInt(y - adt_max) || (parseInt(birthday_m) < 1 || parseInt(birthday_m) > 12) || (parseInt(birthday_d) < 1 || parseInt(birthday_d) > 31))
 {
  alert('생년월일을 확인해 주세요.');
  return false;
 }
 //=== 확인 : 생년월일 형식 // 끝

 return true;
}

<form id="f" name="f">

<input type="text" id="birthday" name="birthday" maxlength="8" onblur="birthday_chk(document.f)" />

</form>

 

Posted by 은둔고수

자바스크립트 정규식을 이용해서 이메일을 확인할 수 있다.

 

소스>

var reg = /^([0-9a-zA-Z_\.-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/;

 

사용 예:jQuery>

 <form name="f" method="post" action="폼 전송 주소">
 <input type="text" id="email" name="email" maxlength="40" />

 <input type="button" value="확인" onclick="btnSubmit()" />
 </form>
 <script type="text/javascript">
 <!--

 // 정규식 : 이메일
 function chkEmail(str)
 {
  var reg_email = /^([0-9a-zA-Z_\.-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/;

  if(!reg_email.test(str))
  {
   return false;
  }

  return true;
 }

 

 // 폼 전송
 function btnSubmit()
 {
  // 확인 : 이메일
  $('#email').val($('#email').val().trim()); // javascript를 이용해서 trim() 구현하기 바로가기
  if(!chkEmail($('#email').val()))
  {
   alert('이메일을 확인하세요.');
   $('#email').focus();
   return false;
  }
  
  //document.f.submit();
 }
 //-->
 </script> 

php 특수문자 정규표현식 이용하기 <- 클릭

Posted by 은둔고수

[javascript-tip][ie7,ff3]javascript를 이용한 글자 수 알아내기(byte)-입력시 바로 알아내기(timer 이용)

 

 

<script language="javascript">
<!--
var timerBytes;


/*----------------------------------------------------------------------------------------
// 타이머 없애기
----------------------------------------------------------------------------------------*/
function clearTimerStrBytes()
{
 clearTimeout(timerBytes);
}


/*----------------------------------------------------------------------------------------
// 계산 : 글자 수(타이머를 이용한 byte 방식)
----------------------------------------------------------------------------------------*/
function setTimerStrBytes(objThis,eid)
{
 if(document.getElementById(objThis.id) == null)
 {
  return;
 }
 
 var str = document.getElementById(objThis.id).value;
 var l = 0;

 for(var i=0, c; i<str.length; i++)
 {
  c=str.charCodeAt(i);

  if(c > 128 )
  {
   l +=  2;
  }
  
  else
  {
   l +=  1;
  }
 }

 document.getElementById(eid.id).innerHTML = l;

 var fn = function()
 {
   setTimerStrBytes(objThis,eid);
 }

 timerBytes = setTimeout(fn,100);
}
//-->
</script>


<table width="300" height="40" border="0" cellpadding="0" cellspacing="0">
<tr height="10">
 <td></td>
</tr>
<tr>
 <td><font color="#6e75c1">입력 글자 수 : <font style="font-size:11px">(<span id="divStrLength" name="divStrLength">0</span>/255)</font></font></td>
</tr>
<tr>
 <td><input type="text" id="tareaMemo" name="tareaMemo" onfocus="setTimerStrBytes(document.getElementById('tareaMemo'),document.getElementById('divStrLength'));" onblur="clearTimerStrBytes();" onkeypress="if(event.keyCode==13){clearTimerStrBytes();}" style="width:250px; height:20px; border:1px solid #a5aded"></td>
</tr>
</table>

Posted by 은둔고수

[javascript-tip]문자열 앞뒤 공백을 없애는 자바스크립트 함수(trim()함수)

 

[1번째 방법]
function jstrim(s)

{
  while (s.charAt(0) == " ")

  {
    s = s.substr(1);
  }

 

  while (s.charAt(s.length-1) == " ")

  {
    s = s.substr(0, s.length-1);
  }

  return s;

}

 

 

[2번째 방법]
function trim (strSource)

{
  re = /^s+|s+$/g;

  return strSource.replace(re, '');
}

 

function ltrim (strSource)

{
  re = /^s+/g;

  return strSource.replace(re, '');
}

 

function rtrim (strSource)

{
  re = /s+$/g;

  return strSource.replace(re, '');
}

 

 

[3번째 방법]
String.prototype.trim=function()
{
  var str=this.replace(/(\s+$)/g,"");
  return str.replace(/(^\s*)/g,"");
}

 

예>
a=" assdf asdf ";
alert(a.trim());


 

 

[4번째 방법]
function trim(str)
{
  return str.replace(/^\s+|\s+$/, '');
}

a=" assdf asdf ";
alert(a.trim());

 

 


[5번째 방법]
String.prototype.trim = function()
{
  // 좌우공백제거
  return this.replace(/^\s+|\s+$/g, "");
}

 

 

function fncCheckAll()
{
  var a = " a b c ";
  alert("a :" + a);

  var b = a.trim();
  alert("b :" + b);

  return;
}

Posted by 은둔고수

[javascript-tip]문자열(한글 2바이트 1글자로 인식) 길이 체크

 

한글 2Byte를 1글자로 인식하는 javascript 예제입니다.

 

 

<html>
 <head>
  <title>[javascript-tip]문자열(한글 2바이트 1글자로 인식) 길이 체크</title>
 </head>
 <script language="JavaScript">
  <!--
  function check()
  {
   var string = document.a.test.value;
   alert(getStringLength(string));
  }

 

  // 문자열 길이 체크 알파뉴메릭(1자리), 한글(2자리)
  function getStringLength (str)
  {
   var retCode = 0;
   var strLength = 0;

   for (i = 0; i < str.length; i++)
   {
    var code = str.charCodeAt(i)
    var ch = str.substr(i,1).toUpperCase()

    code = parseInt(code)

    if ((ch < "0" || ch > "9") && (ch < "A" || ch > "Z") && ((code > 255) || (code < 0)))
     strLength = strLength + 2;
    else
     strLength = strLength + 1;
   }
   return strLength;
  }
  //-->
 </script>
</head>
<body>
 <form name="a">
  <input type="text" name="test"><input type="button" value="체크" onClick="JavaScript:check();">
 </form>
</body>
</html>

Posted by 은둔고수