/* 특정 쿠기 삭제
ck_name : 쿠키 이름
*/
function del_cookie(ck_name) {
set_cookie(ck_name, "", 0 , 0);
}
del_cookie('site_name'); // 쿠키 삭제
/* 특정 쿠기 삭제
ck_name : 쿠키 이름
*/
function del_cookie(ck_name) {
set_cookie(ck_name, "", 0 , 0);
}
del_cookie('site_name'); // 쿠키 삭제
/* 쿠키 생성
초단위
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초)
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()
키코드(event.keycode)값을 알려주는 사이트 : http://www.w3.org/2002/09/tests/keys.html
37 : 왼쪽 화살표 (←)
38 : 위쪽 화살표 (↑)
39 : 오른쪽 화살표 (→)
40 : 아래쪽 화살표 (↓)
13 : 엔터키 (Enter Key)
생년월일을 입력받아 자바스크립트를 이용해서 미성년자를 확인한다.
입력 양식 : 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>
자바스크립트 정규식을 이용해서 이메일을 확인할 수 있다.
소스>
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>
[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>
[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;
}
[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
</form>
</body>
</html>