ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유용한 자바 스크립트 함수.
    Programming/JAVASCRIPT 2010. 8. 13. 08:35

     <!--

    // radio 또는 checkbox가 배열또는 특정문자열의 반복으로 구성된 값을 넘길때 submit()

    // 체크된 값은 "y", 그렇지 않은 값은 "n"을 넘긴다.

    // ex) <input type='checkbox' name='chkVal_1'>

    function fSubmit() {

    var f=document.form;

    for (var i=0; i<f.elements.length; i++) {

    if (f.elements[i].name.substr(0,6) == 'chkVal') {

    if (f.elements[i].checked == false) f.elements[i].value = 'n';

    else f.elements[i].value = 'y';

    }

    }

    f.submit();

    }



    // 팝업을 오픈한 동시에 부모창에서 팝업으로 submit

    // <form name='fm'>에서 실행시켜 result.html로 넘긴다

    function popSubmit(f) {

    var pop=window.open("","pop_submit","top=10,left=10,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=200,height=200);

    f.method = "post";

    f.action = "result.html";

    f.target = "pop_submit";

    f.submit();

    pop.focus();

    }



    // 부모창의 값을 특정스크립트(result.html)에 넘긴다(팝업이 parent를 조절)

    function parentSubmit(f) {

    f.method = "post";

    f.action = "result.html";

    f.target = "_self";

    f.submit();

    self.close();

    }



    // 한 페이지에 선택될 갯수를 저장할 전역변수

    // 한 페이지에 최대 4개를 선택한다.

    var Select_Count = 0;

    // onClick 이벤트실행시 수행되며 onChange 이벤트에서 이전값을 저장하기위한 전역변수

    var Click_Value;



    // 노출 radio 버턴의 패턴을 바꿀때

    function DisplayChange(card_id,val) {

    var opt=eval("document.form.chkDisplay_"+card_id);

    var sel=eval("document.form.chkSelect_"+card_id);

    var ordText=eval("OrderText_"+card_id);



    for (var i=0; i<opt.length; i++) {

    if ((opt[i].checked == true) && (val == 1)) {

    if (Select_Count >= 4) {

    alert('Over !!!');

    opt[i].checked = false;

    opt[i].checked = true;

    return;

    }

    sel.style.color='#c4018a';

    sel.style.background.color='#f8f7f7';

    sel.disabled = false;

    if (sel.options[sel.selectedIndex].value > 0) {

    ordText.style.display='';

    Select_Count++;

    } else ordText.style.display='none';

    } else if ((opt[i].checked == false) && (val == 0)) {

    sel.disabled = true;

    ordText.style.display='none';

    if (sel.options[sel.selectedIndex].value > 0) Select_Count--;

    ordText.style.display='none';

    }

    break;

    }

    }



    // select 값이 바뀌면 실행되는 루틴

    function OrderChange(card_id) {

    var sel=eval("document.form.chkSelect_"+card_id);

    var ordText=eval("OrderText_"+card_id);

    if (sel.value == 0) {

    Select_Count--;

    ordText.style.display='none';

    return;

    } else {

    if (Select_Count < 4) {

    if (Click_Value > 0) return;

    else {

    Select_Count++;

    ordText.style.display='';

    return;

    }

    } else {

    if (Click_Value > 0) return;

    else {

    alert('Over !!!');

    sel.value=Click_Value;

    return;

    }

    }

    }

    }



    // select 박스를 클릭하면 실행되는 루틴(전역변수에 현재 클릭된 값을 저장한다)

    function OrderClick(card_id) {

    var sel=eval("document.form.chkSelect_"+card_id);

    Click_Value = sel.value;

    }



    // 파일 체크박스가 1개라도 체크되어 있으면 true 리턴
    function check_confirm(){

    objForm = document.frmFile;
    var count = 0;
    if (objForm.chk != undefined){
    var length = objForm.chk.length;
    if(length > 1){ //체크박스가 여러개 일경우
    for(var i=0; i<length; i++){
    if(frmFile.chk[i].checked)
    count++;
    }
    }else{ //체크박스가 한개일경우
    if(frmFile.chk.checked)
    count++;
    }
    }
    return count;
    }


    // 최상위 체크 로직(chars로 넘긴 값이 있다면 true)

    function containsCharsOnly(input,chars) {

    for (var inx = 0; inx < input.value.length; inx++) {

    if (chars.indexOf(input.value.charAt(inx)) == -1)

    return false;

    }

    return true;

    }





    // 최상위 체크 로직(chars로 넘긴 값이 있다면 false)

    function containsChars(input,chars) {

    for (var inx = 0; inx < input.value.length; inx++) {

    if (chars.indexOf(input.value.charAt(inx)) != -1)

    return true;

    }

    return false;

    }







    // 숫자 체크

    function isNum(input) {

    var chars = "0123456789";

    return containsCharsOnly(input,chars);

    }







    // 이름체크

    function nameCheck(input){

    var chars = '0123456789~!@#$%^&*()_-+=|{}[]<>,./?';

    return containsChars(input,chars);

    }







    // 전화 번호 Check

    function isPhoneCheck(input) {

    var chars = "0123456789( ).-,<>{}[]_~";

    return containsCharsOnly(input,chars);

    }







    // 영문 판별

    function isPhoneCheck(input) {

    var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    return containsCharsOnly(input,chars);

    }







    // 영숫자 판별

    function isPhoneCheck(input) {

    var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

    return containsCharsOnly(input,chars);

    }







    // 입력값이 숫자,대시(-)로 되어있는지 체크

    function isNumDash(input) {

    var chars = "-0123456789";

    return containsCharsOnly(input,chars);

    }







    // 입력값이 숫자,콤마(,)로 되어있는지 체크

    function isNumComma(input) {

    var chars = ",0123456789";

    return containsCharsOnly(input,chars);

    }







    // 입력값이 사용자가 정의한 포맷 형식인지 체크

    // 자세한 format 형식은 자바스크립트의 ''regular expression''을 참조

    function isValidFormat(input,format) {

    if (input.value.search(format) != -1) {

    return true; file://올바른 포맷 형식

    }

    return false;

    }







    /**

    * 입력값이 이메일 형식인지 체크

    * ex) if (!isValidEmail(form.email)) {

    * alert("올바른 이메일 주소가 아닙니다.");

    * }

    */

    function isValidEmail(input) {

    // var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;

    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;

    return isValidFormat(input,format);

    }







    /**

    * 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크

    */

    function isValidPhone(input) {

    var format = /^(\d+)-(\d+)-(\d+)$/;

    return isValidFormat(input,format);

    }







    // 콤마 없애기

    function removeComma(input) {

    return input.value.replace(/,/gi,"");

    }







    // 문자 변환 함수

    function alterString(str,before,after) {

    var returnStr = "";

    for(i = 0; i < str.length; i++) {

    value = str.charAt(i);

    index = before.indexOf(value);

    if(index >= 0) value = after.charAt(index);

    returnStr += value;

    }

    return returnStr;

    }







    // 소 --> 대문자 변환 함수

    function ToUpper(arg) {

    var str1 = "abcdefghijklmnopqrstuvwxyz";

    var str2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    return alterString(arg,str1,str2);

    }







    // 대 --> 소문자 변환 함수

    function ToLower(arg){

    var str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    var str2 = "abcdefghijklmnopqrstuvwxyz";

    return alterString(arg,str1,str2);

    }







    // 반각 문자를 전각문자로

    function convert2ByteChar(x_char) {

    var x_2byteChar = ""; //컨버트된 문자

    var c = x_char.charCodeAt(0);

    if(32 <= c && c <= 126) { //전각으로 변환될수 있는 문자의 범위

    if(c == 32) { //스페이스인경우 ascii 코드 32

    x_2byteChar = unescape("%uFFFC");

    } else {

    x_2byteChar = unescape("%u"+gf_DecToHex(c+65248));

    }

    }

    return x_2byteChar;

    }







    // 10진수를 16진수로

    function gf_DecToHex(x_dec) {

    var x_Hex = new Array();

    var x_serial = 0;

    var x_over16 = x_dec;

    var x_tempNum = 0;

    while(x_dec > 15) {

    var x_h = x_dec % 16; //나머지

    x_dec = parseInt(x_dec/16); //몫

    x_Hex[x_serial++] = (x_h > 9 ? String.fromCharCode(x_h + 55) : x_h); //16진수코드변환

    }







    //마지막은 몫의 값을 가짐

    x_Hex[x_serial++] = (x_dec > 9 ? String.fromCharCode(x_dec + 55) : x_dec); //16진수코드변환



    //몫,나머지,나머지,.....

    var retValue = "";

    for(var i=x_Hex.length ; i>0 ;i--) {

    retValue += x_Hex[i-1];

    }

    return retValue;

    }







    // input box에 space,  등 만으로 넣고 장난 칠때 이들 문자 뺀 길이를 통해 유효성 체크한다...

    function CheckStr(strOriginal, strFind, strChange){

    var position, strOri_Length;

    position = strOriginal.indexOf(strFind);

    while (position != -1){

    strOriginal = strOriginal.replace(strFind, strChange);

    position = strOriginal.indexOf(strFind);

    }

    strOri_Length = strOriginal.length;

    return strOri_Length;

    }







    // 체크 박스에 체크가 되어 있으면 true

    function checkValidator(str) {

    if(str.checked) return true;

    else return false;

    }







    // 비밀번호는 4자 등 최대 최소 길이를 파람으로 주고 처리...

    function checkLength(str,minLng,maxLng){

    var ckstr = str.value.length;

    if (parseInt(ckstr) < parseInt(minLng) || parseInt(ckstr) > parseInt(maxLng)) return false;

    return true;

    }







    // 숫자만 받아서 아니면 메세지 보여 주는

    function onlyNumber(objEv) {

    if(!isNum(objEv)){

    alert("숫자만 입력가능합니다.");

    objEv.value = "";

    objEv.focus();

    return;

    }

    }







    // 숫자를 체크하다가 6자 등 원하는 만큼 이동후 다음 input 박스로 이동 시키는...

    function goJump(fname, len, goname){

    onlyNumber(fname);

    if (document.all[fname].value.length == len) document.all[goname].focus();

    }







    // 주민등록번호 체크 로직

    function check_ResidentNO(str_f_num,str_l_num){

    var i3=0

    for (var i=0;i<str_f_num.length;i++){

    var ch1 = str_f_num.substring(i,i+1);

    if (ch1<'0' || ch1>'9') i3=i3+1;

    }

    if ((str_f_num == '') || ( i3 != 0 )) return false;

    var i4=0;

    for (var i=0;i<str_l_num.length;i++){

    var ch1 = str_l_num.substring(i,i+1);

    if (ch1<'0' || ch1>'9') i4=i4+1;

    }

    if ((str_l_num == '') || ( i4 != 0 )) return false;

    if(str_f_num.substring(0,1) < 4) return false;

    if(str_l_num.substring(0,1) > 2) return false;

    if((str_f_num.length > 7) || (str_l_num.length > 8)) return false;

    if ((str_f_num == '72') || ( str_l_num == '18')) return false;



    var f1=str_f_num.substring(0,1)

    var f2=str_f_num.substring(1,2)

    var f3=str_f_num.substring(2,3)

    var f4=str_f_num.substring(3,4)

    var f5=str_f_num.substring(4,5)

    var f6=str_f_num.substring(5,6)

    var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7

    var l1=str_l_num.substring(0,1)

    var l2=str_l_num.substring(1,2)

    var l3=str_l_num.substring(2,3)

    var l4=str_l_num.substring(3,4)

    var l5=str_l_num.substring(4,5)

    var l6=str_l_num.substring(5,6)

    var l7=str_l_num.substring(6,7)

    hap=hap+l1*8+l2*9+l3*2+l4*3+l5*4+l6*5

    hap=hap%11

    hap=11-hap

    hap=hap%10

    if (hap != l7) return false;

    return true;

    }







    // 바이트 구하기

    function getByteLen(str){

    return(str.length+(escape(str)+"%u").match(/%u/g).length-1);

    }







    // url 가져오기

    function getUrlAddress(){

    var pageUrl = document.location;

    pageUrl = new String(pageUrl);

    return pageUrl.substring(0,pageUrl.lastIndexOf("/"));

    }







    // 오른마우스 금지, 나중에 해당 주석 풀고 사용

    function rightbutton(e){

    if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2))

    return false;

    else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3))

    {

    alert("죄송합니다!! 정보무단복제를 막기 위하여 오른쪽 마우스 사용을 허용하지 않습니다.");

    return false;

    }

    return true;

    }







    //document.onmousedown=rightbutton;



    // 컨트롤 키 금지, 나중에 해당 주석 풀고 사용

    function checkCtl(){

    if (document.all){

    if(event.keyCode==17) {

    alert("죄송합니다!! 컨트롤키 사용을 허용하지 않습니다.");

    return false;

    }

    }

    }







    //document.onkeydown = checkCtl;



    function setCookie(name,value) {

    document.cookie = name+"="+escape(value)+";path=/;domain=.kkaok.pe.kr;";

    }



    function setCookie(name,value, expires) {

    document.cookie = name + "=" + escape(value) +

    "; path=/; expires=" + expires.toGMTString();

    }



    function getCookie(Name) {

    var search = Name + "="

    if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면

    offset = document.cookie.indexOf(search)

    if (offset != -1) { // 쿠키가 존재하면

    offset += search.length

    // set index of beginning of value

    end = document.cookie.indexOf(";", offset)

    // 쿠키 값의 마지막 위치 인덱스 번호 설정

    if (end == -1)

    end = document.cookie.length

    return unescape(document.cookie.substring(offset, end));

    }

    }

    }







    String.prototype.trim = function(){

    return this.replace(/(^\s*)|(\s*$)/gi, "");

    }



    //문자 바꾸기, 사용법 var str = 문자열.replaceAll("a", "1");

    String.prototype.replaceAll = function(str1, str2) {

    var temp_str = "";

    if (this.trim() != "" && str1 != str2) {

    temp_str = this.trim();

    while (temp_str.indexOf(str1) > -1){

    temp_str = temp_str.replace(str1, str2);

    }

    }

    return temp_str;

    }

    //-->
Designed by Tistory.